24 shkurt, pas më shumë se një viti zhvillimi, u publikua 0.11.22 e bibliotekës ndërplatformë për kapjen dhe re-play-in e zërit. miniaudio, e shkruar në gjuhën C dhe e shpërndarë si pronë publike.
miniaudio funksionon në të gjitha platformat kryesore të desktopit dhe mobilit, duke përfshirë Windows, macOS, Linux, BSD, iOS, Android dhe Web (nëpërmjet Emscripten) pa varësi të jashtme.
Biblioteka ka një API të thjeshtë, fleksibël dhe modular me dekodues të ndërtuar brenda (WAV, MP3 dhe FLAC), miksim të avancuar dhe përpunim efektesh (duke përfshirë 3D), menaxhim burimesh, filtra, konvertim të të dhënave dhe shumë më tepër.
Ndryshimet kryesore:
- Deri në versionin 0.12, miniaudio do të kalojë në një çift të ndarë skedarësh .c/h, duke hequr dorë nga skedari i vetëm të titullit. Për të përgatitur këtë, në depo është shtuar skedari miniaudio.c. Në këtë moment, është thjesht një mbështjellës rreth miniaudio.h dhe MINIAUDIO_IMPLEMENTATION. Në miniaudio.h nuk ka ndryshuar asnjë gjë, megjithatë, kur të dalë versioni 0.12, do të duhet të përdorni miniaudio.c për kompilim. Këshillohet të filloni kalimin 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 të vetme kompilimi, mund ta bëni #include "miniaudio.c". Ky mënyrë do të mbështetet në versionin 0.12 dhe më pas.
- Skedarët miniaudio_libvorbis.h dhe miniaudio_libopus.h në direktorinë extras janë shpallur të sjellshëm. Tani ato janë të ndara në skedarë të veçantë .c dhe .h në direktorinë extras/decoders. Skedarët e vjetër ende ekzistojnë për qëllime kompatibiliteti, por do t'ju duhet të kaloni në versionet e reja. Kalimi duhet të jetë trivialisht.
- Shtuar opsionet MA_SOUND_FLAG_LOOPING dhe MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Mund të përdoren për të inicializuar zëra dhe burime të menaxhuara për burime të dhënash për ciklimin në mënyrë të paracaktuar. Ky është mënyra e rekomanduar për të aktivizuar ciklimin për rrjedha. Opsionet e konfigurimit isLooping në ma_sound_config dhe ma_resource_manager_data_source_config janë shpallur të sjellshëm. Nëse i përdorni ato, duhet të kaloni në opsionet e reja, përndryshe, kur të përditësoheni në versionin e ardhshëm, do të merrni gabime kompiliimi.
- ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() dhe ma_pcm_rb_commit_write() nuk kthejnë më MA_AT_END. Arsyeja për këtë ndryshim është se në tamponin qarkor nuk ka koncept të "fundit", çka e bënte kodin e rezultatit të paqartë. Për më tepër, këto funksione mund të kthejnë jo MA_SUCCESS, por diçka tjetër, edhe nëse operacioni përfundoi me sukses, çka shkaktonte konfuzion të mëtejshëm. Mënyra e duhur për të kontrolluar nëse ka ende hapësirë në tamponin qarkor është të shikoni numrin e kadrove të kthyer nga funksionet rb_acquire_read/write().
- Implementimi i burimit të dhënave ma_pcm_rb është ndryshuar në mënyrë që daljet të mbushen me heshtje, nëse në tamponin qarkor nuk ka mjaft të dhëna për të përmbushur kërkesën. Kjo do të thotë se ma_data_source_read_pcm_frames() për ma_pcm_rb nuk duhet më të kthejë numrin e kadrove më të vogël se ajo që keni kërkuar, dhe prandaj kurrë nuk do të kthejë MA_AT_END, e cila nuk ka kuptim për tamponin qarkor, për shkak se ai nuk ka konceptin e fundit. Ky ndryshim duhet të thjeshtojë në masë të madhe përdorimin e tamponit qarkor si një burim të dhënash për ma_sound.
- Funksionin ma_calculate_buffer_size_in_milliseconds_from_frames() i është bërë një ndryshim i vogël, duke bërë që ai të kthejë një vlerë të rrumbullakosur në numrin më të afërt të plotë.
- Kur ndodhi një dështim në inicializimin e dekoduesit, tani kthehet kodi i gabimit të parë të hasur, e jo MA_NO_BACKEND pa marrë parasysh gabimin, siç ishte më parë.
- Shtuar funksionin ma_device_id_equal() për krahasimin e identifikuesve të pajisjeve.
- Shtuar mbështetje për MA_NO_RUNTIME_LINKING në backend AAudio.
- Dokumentacioni është azhornuar.
- ĂshtĂ« korrigjuar gabimet e gjetura.
Burimi: linux.org.ru
