24. veebruaril, pÀrast enam kui aastat arendust, tuli vÀlja 0.11.22 platvormidevaheline heli salvestamise ja esitamise teek. miniaudio, mis on kirjutatud C keeles ja levitatakse avaliku domeenina.
miniaudio töötab kÔigil peamistel lauaarvutitel ja mobiilplatvormidel, sealhulgas Windows, macOS, Linux, BSD, iOS, Android ja Web (Emscripteni kaudu), ilma kolmandate osapoolte sÔltuvusteta.
Teek pakub lihtsat, paindlikku ja modulaarset API-d, millel on sisseehitatud dekooderid (WAV, MP3 ja FLAC), tÀiustatud segamine ja efekte töötlemine (sealhulgas 3D), ressursside haldamine, filtrid, andmete teisendamine ja palju muud.
Peamised muudatused:
- Versioonist 0.12 alates liigub miniaudio eraldi .c/.h failide juurde, loobudes ĂŒhest peafailist. Valmistumisel on repositorysse lisatud fail miniaudio.c. Praegu on see lihtsalt miniaudio.h ja MINIAUDIO_IMPLEMENTATION ĂŒmbrik. miniaudio.h-s ei ole muudatusi, kuid kui versioon 0.12 vĂ€ljastatakse, peab kasutama miniaudio.c kompileerimiseks. Soovitame alustada ĂŒleminekut MINIAUDIO_IMPLEMENTATION kasutamiselt miniaudio.c kasutamisele. Kui soovite jĂ€tkata oma projekti kompileerimist ĂŒhe ĂŒhikuna, vĂ”ite teha #include "miniaudio.c". See meetod toetatakse versioonis 0.12 ja hiljem.
- Failid miniaudio_libvorbis.h ja miniaudio_libopus.h kaustas extras on mĂ€rgistatud vananenuks. Need on nĂŒĂŒd jagatud eraldi .c ja .h failideks kaustas extras/decoders. Vanad failid on endiselt olemas ĂŒhilduvuse tĂ”ttu, kuid peate ĂŒle minema uutele versioonidele. Ăleminek peab olema triviaalne.
- Lisatud on valikud MA_SOUND_FLAG_LOOPING ja MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Neid saab kasutada helide ja hallatavate ressursside andmeallikate algatamiseks, et lubada vaikimisi tsĂŒklit. See on soovitatav viis tsĂŒkli lubamiseks voogudes. Valikukonfiguratsioonid isLooping ma_sound_config-s ja ma_resource_manager_data_source_config-s on aegunud. Kui kasutate neid, peaksite minema uutele valikutele, vastasel juhul vĂ”ite tulevases versioonis vĂ€rskendades kohtuda kompilatsiooni viga.
- ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() ja ma_pcm_rb_commit_write() ei enam tagasta MA_AT_END. Selle muudatuse pĂ”hjuseks on see, et ringpuhver ei tunne mĂ”istet âlĂ”ppâ, mis tegi tulemuste koodi ebaselgeks. Lisaks vĂ”ivad need funktsioonid tagastada mitte MA_SUCCESS, vaid midagi muud, isegi kui operatsioon Ă”nnestus, mis tekitas lisaprobleeme. Ăige viis kontrollida, kas ringpuhvrisse on veel ruumi, on vaadata raamide arvu, mille funktsioonid rb_acquire_read/write() tagastavad.
- Ma_pcm_rb andmeallika teostus on muutunud selliselt, et vÀljund tÀidetakse vaikusega, kui ringpuhvrisse ei jÀtku andmeid pÀringu tÀitmiseks. See tÀhendab, et ma_data_source_read_pcm_frames() ma_pcm_rb jaoks ei tohiks enam tagastada raamide arvu, mis on vÀiksem kui soovisite, ja seega ei tagasta see kunagi MA_AT_END, mis ei oma tÀhendust ringpuhvri jaoks, kuna tal ei ole lÔpu mÔistet. See muudatus peaks oluliselt lihtsustama ringpuhvri kasutamist ma_sound andmeallikana.
- Funktsioonis ma_calculate_buffer_size_in_milliseconds_from_frames() on tehtud vÀike muudatus, mille tulemuseks on, et see tagastab lÀhima tÀisarvu.
- Dekraatori ebaĂ”nnestumise korral tagastatakse nĂŒĂŒd esmakordselt leitud veakood, mitte MA_NO_BACKEND sĂ”ltumata veast, nagu see oli varem.
- Lisa funktsioon ma_device_id_equal(), et vÔrrelda seadme identifikaatoreid.
- AAudio taustal on lisatud tugi MA_NO_RUNTIME_LINKING.
- Dokumentatsioon on uuendatud.
- Avastatud vead on parandatud.
Allikas: linux.org.ru
