Më 24 shkurt, pas më shumë se një viti zhvillimi, u lëshua 0.11.22 e bibliotekës së regjistrimit dhe riprodhimit audio ndër-platformë miniaudio, i shkruar në C dhe i shpërndarë në domenin publik.
miniaudio funksionon në të gjitha platformat kryesore të desktopit dhe celularit, duke përfshirë Windows, macOS, Linux, BSD, iOS, Android dhe Web (nëpërmjet Emscripten) pa varësi nga palët e treta.
Biblioteka ka një API të thjeshtë, fleksibël dhe modular me dekoderë të integruar (WAV, MP3 dhe FLAC), përzierje të avancuara dhe përpunim të efekteve (përfshirë 3D), menaxhim të burimeve, filtra, konvertim të të dhënave dhe shumë më tepër.
Ndryshimet kryesore:
- Duke filluar me versionin 0.12, miniaudio do të kalojë në një çift të veçantë skedarësh .c/h, duke braktisur skedarin e vetëm të kokës. Për t'u përgatitur për këtë, një skedar miniaudio.c është shtuar në depo. Për momentin është vetëm një mbështjellës rreth miniaudio.h dhe MINIAUDIO_IMPLEMENTATION. Asgjë nuk ka ndryshuar në miniaudio.h, megjithatë kur të dalë versioni 0.12, do t'ju duhet të përdorni miniaudio.c për përpilim. Rekomandohet të filloni migrimin nga përdorimi i MINIAUDIO_IMPLEMENTATION në përdorimin e miniaudio.c. Nëse dëshironi të vazhdoni të ndërtoni projektin tuaj si një njësi e vetme përpilimi, mund të #përfshini "miniaudio.c". Kjo metodë do të mbështetet në versionin 0.12 dhe më gjerë.
- Skedarët miniaudio_libvorbis.h dhe miniaudio_libopus.h në drejtorinë shtesë janë zhvlerësuar. Ata tani janë të ndarë në skedarë të veçantë .c dhe .h në direktorinë shtesë/dekoder. Skedarët e vjetër ekzistojnë ende për pajtueshmëri, por do t'ju duhet të përmirësoni në versionet e reja. Tranzicioni duhet të jetë i parëndësishëm.
- Opsionet e shtuara MA_SOUND_FLAG_LOOPING dhe MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Ato mund të përdoren për të inicializuar tingujt dhe burimet e të dhënave të drejtuara nga burimet për t'u lidhur si parazgjedhje. Kjo është mënyra e rekomanduar për të aktivizuar looping për fijet. Opsionet e konfigurimit të isLooping në ma_sound_config dhe ma_resource_manager_data_source_config janë zhvlerësuar. Nëse jeni duke i përdorur ato, duhet të përmirësoni opsionet e reja, përndryshe do të merrni gabime të përpiluesit kur përmirësoni në një version të ardhshëm.
- ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read(), dhe ma_pcm_rb_commit_write() nuk kthehen më MA_AT_END. Arsyeja për këtë ndryshim është se nuk ekziston koncepti i "fundit" në një tampon unazë, gjë që e bëri kodin e rezultatit të paqartë. Për më tepër, këto funksione mund të kthejnë diçka tjetër përveç MA_SUCCESS edhe nëse operacioni përfundon me sukses, gjë që shtoi konfuzionin. Mënyra e duhur për të kontrolluar nëse ka ende vend në buferin e unazës është të shikoni numëruesin e kornizës të kthyer nga funksionet rb_acquire_read/write().
- Zbatimi i burimit të të dhënave ma_pcm_rb është ndryshuar në mënyrë që dalja të mbushet me heshtje nëse nuk ka të dhëna të mjaftueshme në buferin e unazës për të përmbushur kërkesën. Kjo do të thotë që ma_data_source_read_pcm_frames() për ma_pcm_rb nuk duhet të kthejë më një numër kornizash më pak se sa keni kërkuar, dhe për këtë arsye nuk do të kthejë kurrë MA_AT_END, gjë që nuk ka kuptim për një buffer unazë pasi nuk ka koncept për një fund. Ky ndryshim duhet ta bëjë shumë më të lehtë përdorimin e tamponit të ziles si burim të dhënash për ma_sound.
- Një ndryshim i vogël është bërë në funksionin ma_calculate_buffer_size_in_milliseconds_from_frames() në mënyrë që të kthejë një vlerë të rrumbullakosur në numrin e plotë më të afërt.
- Nëse inicializimi i dekoderit dështon, kodi i parë i gabimit i hasur tani kthehet, në vend të MA_NO_BACKEND pavarësisht nga gabimi, siç ndodhte më parë.
- U shtua funksioni ma_device_id_equal() për krahasimin e ID-ve të pajisjes.
- Mbështetja e shtuar për MA_NO_RUNTIME_LINKING në backendin AAudio.
- Dokumentacioni u përditësua.
- Gabimet e zbuluara janë rregulluar.
Burimi: linux.org.ru
