24. veebruaril, pärast üle aasta kestnud arendust, ilmus 0.11.22 ristplatifoodide helisalvestuse ja -taasesituse teek. miniaudio, mis on kirjutatud C keeles ja jagatakse avaliku valduses.
miniaudio töötab kõigil peamistel lauaarvuti ja mobiilplatvormidel, sealhulgas Windows, macOS, Linux, BSD, iOS, Android ja Web (Emscripteni kaudu) ilma kolmanda osapoole sõltuvusteta.
Teek annab lihtsa, paindliku ja modulaarsuse API koos sisseehitatud dekoodritega (WAV, MP3 ja FLAC), täiustatud mikserimise ja efektide töötlemisega (sealhulgas 3D), ressursside haldamise, filtrite, andmete teisendamise ja paljuga muuga.
Peamised muudatused:
- Alates versioonist 0.12 hakkab miniaudio kasutama eraldi c/h failide paari, loobudes ühest pealkirjafailist. Selleks on hoidlas lisatud fail miniaudio.c. Praegu on see lihtsalt kott miniaudio.h ja MINIAUDIO_IMPLEMENTATION ümber. miniaudio.h ei ole muutunud, kuid pärast versiooni 0.12 väljalaskmist tuleb miniaudio.c kasutamiseks kompileerimisel. Soovitame alustada üleminekut MINIAUDIO_IMPLEMENTATION kasutamiselt miniaudio.c kasutamisele. Kui soovite jätkata oma projekti kompileerimist kui ühte kompileerimisseadet, saate teha #include "miniaudio.c". See meetod toetatakse versioonis 0.12 ja edaspidi.
- Failid miniaudio_libvorbis.h ja miniaudio_libopus.h kaustas extras on kuulutatud aegunuks. Need on nüüd jagatud eraldi c ja h failideks kaustas extras/decoders. Vanad failid eksisteerivad endiselt ühilduvuse jaoks, kuid peate minema uute versioonide juurde. Üleminek peaks olema triviaalne.
- Lisatud on valikud MA_SOUND_FLAG_LOOPING ja MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Nii saab neid kasutada helide ja hallatavate ressursiallikate algselt tsükliliseks seadistamiseks. See on soovitatav viis tsüklilisuse aktiveerimiseks voogude jaoks. Seadeis optsiooni isLooping ma_sound_config ja ma_resource_manager_data_source_config on kuulutatud aegunuks. Kui kasutate neid, peaksite minema uute valikute juurde, muidu saate tulevase versiooni uuendamisel kompilaatori vigu.
- ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() ja ma_pcm_rb_commit_write() ei tagasta enam MA_AT_END. Selle muudatuse põhjus on see, et ringikujulises puhveris ei ole mõistet „lõpp”, mis tegi tulemuste kodeerimise ebaselgeks. Lisaks võivad need funktsioonid tagastada mitte MA_SUCCESS, vaid midagi muud, isegi kui operatsioon õnnestus, mis tekitas täiendavat segadust. Õige viis kontrollida, kas ringikujulises puhveres on veel ruumi, on vaadata raamide loendit, mille funktsioonid rb_acquire_read/write() tagastavad.
- Andmeallika ma_pcm_rb rakendus muutus nii, et väljundid täidetakse vaikimisega, kui ringikujulises puhveres ei ole piisavalt andmeid, et päringut täita. See tähendab, et ma_data_source_read_pcm_frames() ma_pcm_rb jaoks ei tohi enam tagastada raamide arvu, mis on väiksem, kui te soovisite, ja seega ei tagasta kunagi MA_AT_END, mis ei oma mõtet ringikujulise puhvri osas, kuna sellel ei ole mõistet lõpp. See muudatus peaks oluliselt lihtsustama ringikujulise puhvri kasutamist andmeallikana ma_sound'i jaoks.
- Funktsioonis ma_calculate_buffer_size_in_milliseconds_from_frames() on tehtud väike muudatus, mille tõttu tagastatav väärtus ümardatakse lähima täisarvuni.
- Dekooderi ebaõnnestunud initsialiseerimise korral tagastatakse nüüd esimene kohtunud veakood, mitte MA_NO_BACKEND olenemata veast, nagu see oli varem.
- Lisatud on funktsioon ma_device_id_equal() seadmete identifikaatorite võrdlemiseks.
- AAudio tagasisidesse on lisatud tugi MA_NO_RUNTIME_LINKING.
- Dokumentatsioon on uuendatud.
- Parandatud tuvastatud vead.
Allikas: linux.org.ru
