Helmikuun 24. päivänä, yli vuoden kehitystyön jälkeen, julkaistiin 0.11.22 eri alustojen välisestä äänen talteenotto- ja toistokirjastosta miniääni, kirjoitettu C-kielellä ja jaettu julkisesti.
miniaudio toimii kaikilla tärkeimmillä työpöytä- ja mobiilialustoilla, mukaan lukien Windows, macOS, Linux, BSD, iOS, Android ja Web (Emscriptenin kautta) ilman kolmannen osapuolen riippuvuuksia.
Kirjastossa on yksinkertainen, joustava ja modulaarinen API, jossa on sisäänrakennetut dekooderit (WAV, MP3 ja FLAC), edistynyt miksaus ja efektien käsittely (mukaan lukien 3D), resurssien hallinta, suodattimet, datamuunnos ja paljon muuta.
Suurimmat muutokset:
- Versiosta 0.12 alkaen miniaudio siirtyy erilliseen .c/h-tiedostopariin, jolloin yksi otsikkotiedosto hylätään. Tätä varten miniaudio.c-tiedosto on lisätty arkistoon. Tällä hetkellä se on vain kääre miniaudio.h:n ja MINIAUDIO_IMPLEMENTATION:n ympärillä. Mikään ei ole muuttunut tiedostossa miniaudio.h, mutta kun versio 0.12 tulee ulos, sinun on käytettävä miniaudio.c-tiedostoa kääntämiseen. On suositeltavaa aloittaa siirtyminen MINIAUDIO_IMPLEMENTATION-käytöstä käyttämään miniaudio.c:tä. Jos haluat jatkaa projektisi rakentamista yhtenä käännösyksikkönä, voit #include "miniaudio.c". Tätä menetelmää tuetaan versiossa 0.12 ja uudemmissa.
- Extras-hakemiston tiedostot miniaudio_libvorbis.h ja miniaudio_libopus.h on vanhentunut. Ne on nyt jaettu erillisiin .c- ja .h-tiedostoihin extras/decoders-hakemistossa. Vanhat tiedostot ovat edelleen olemassa yhteensopivuuden vuoksi, mutta sinun on päivitettävä uusiin versioihin. Siirron tulee olla triviaalia.
- Lisätty vaihtoehdot MA_SOUND_FLAG_LOOPING ja MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Niitä voidaan käyttää äänien ja resurssilähtöisten tietolähteiden alustamiseen oletusarvoisesti silmukaksi. Tämä on suositeltu tapa ottaa silmukat käyttöön säikeille. IsLooping-määritysasetukset ma_sound_config- ja ma_resource_manager_data_source_config-tiedostoissa on vanhentuneita. Jos käytät niitä, sinun tulee päivittää uusiin vaihtoehtoihin, muuten saat kääntäjävirheitä, kun päivität tulevaan versioon.
- ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() ja ma_pcm_rb_commit_write() eivät enää palauta MA_AT_END. Syy tähän muutokseen on se, että rengaspuskurissa ei ole "lopun" käsitettä, mikä teki tuloskoodista epäselvän. Lisäksi nämä toiminnot voivat palauttaa jotain muuta kuin MA_SUCCESS, vaikka toiminto olisi suoritettu onnistuneesti, mikä lisäsi sekaannusta. Oikea tapa tarkistaa, onko soittopuskurissa vielä tilaa, on katsoa rb_acquire_read/write()-funktioiden palauttamaa kehyslaskuria.
- Tietolähteen ma_pcm_rb toteutusta on muutettu siten, että lähtö täyttyy hiljaisuudella, jos rengaspuskurissa ei ole tarpeeksi dataa pyynnön täyttämiseen. Tämä tarkoittaa, että ma_pcm_rb:n ma_data_source_read_pcm_frames() ei enää palauta pyytämääsi määrää pienempiä kehyksiä, joten se ei koskaan palauta arvoa MA_AT_END, mikä ei ole järkevää soittopuskurille, koska sillä ei ole käsitettä lopusta. Tämän muutoksen pitäisi helpottaa soittopuskurin käyttöä ma_soundin tietolähteenä.
- Funktioon ma_calculate_buffer_size_in_milliseconds_from_frames() tehtiin pieni muutos, jotta se palauttaa arvon pyöristettynä lähimpään kokonaislukuun.
- Jos dekooderin alustus epäonnistuu, ensimmäinen havaittu virhekoodi palautetaan nyt MA_NO_BACKEND sijaan virheestä riippumatta, kuten aiemmin.
- Lisätty ma_device_id_equal()-funktio laitetunnusten vertailua varten.
- Lisätty tuki MA_NO_RUNTIME_LINKING AAudio-taustajärjestelmään.
- Dokumentaatio päivitetty.
- Havaitut virheet on korjattu.
Lähde: linux.org.ru
