Më 24 Shkurt, pas më shumë se një vit zhvillimi, u lëshua versioni 0.11.22 i bibliotekës shumëplatformës për kapjen dhe riprodhimin e zërit. miniaudio, i shkruar në gjuhën C dhe i shpërndarë si pronë publike.
miniaudio funksionon në të gjitha platformat kryesore desktop dhe mobile, 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ë integruar (WAV, MP3 dhe FLAC), përzierje të avancuar dhe përpunim efektesh (përfshirë 3D), menaxhim burimesh, filtra, konvertim të të dhënave dhe shumë më tepër.
Ndryshimet kryesore:
- Nga versioni 0.12, miniaudio do të kalojë në një çift të ndarë skedullash .c/.h, duke hequr dorë nga skedhja e vetme të titullit. Për të përgatitur për këtë, në depo është shtuar skeda miniaudio.c. Për momentin, kjo është thjesht një mbështjellës rreth miniaudio.h dhe MINIAUDIO_IMPLEMENTATION. Në miniaudio.h nuk ka ndryshime, megjithatë, kur të publikohet versioni 0.12, do të nevojitet të përdoret miniaudio.c për kompaktimin. Rekomandohet 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 kompaktimi, mund ta bëni #include "miniaudio.c". Ky mënyrë do të mbështetet në versionin 0.12 dhe më tej.
- Skedat miniaudio_libvorbis.h dhe miniaudio_libopus.h në drejtorinë extras janë shpallur të vjetra. Tani ato janë ndarë në skeda të veçanta .c dhe .h në drejtorinë extras/decoders. Skedat e vjetra akoma ekzistojnë për kompatibilitet, por do t'ju duhet të kaloni në versionet e reja. Kalimi duhet të jetë trivial.
- Janë shtuar opsionet MA_SOUND_FLAG_LOOPING dhe MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Ato mund të përdoren për të inicuar tinguj dhe burime të menaxhuara për burimet e të dhënave për ciklimin e parazgjedhur. Ky është mënyra e rekomanduar për të aktivizuar ciklimin për rrjedhat. Opsionet e konfigurimit isLooping në ma_sound_config dhe ma_resource_manager_data_source_config janë shpallur të vjetra. Nëse i përdorni ato, duhet të kaloni në opsionet e reja, përndryshe, kur azhurnoni në versionin e ardhshëm, do të merrni gabime kompajlimi.
- ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() dhe ma_pcm_rb_commit_write() tani nuk kthejnë MA_AT_END. Arsyeja e këtij ndryshimi është se në bufferin rrethor nuk ekziston nocioni i "fundit", gjë që e bënte 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ërfundoi me sukses, çka shkaktonte konfuzion të mëtejshëm. Menyra e duhur për të kontrolluar nëse ka akoma hapësirë në bufferin rrethor është të shikoni numëruesin e kadrove, të kthyer nga funksionet rb_acquire_read/write().
- Implementimi i burimit të të dhënave ma_pcm_rb është ndryshuar në mënyrë që të dhënat e daljes të mbushen me heshtje, nëse në bufferin rrethor 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 tani nuk duhet të kthejë numrin e kadrove më pak se ajo që kërkuat, dhe prandaj nuk do të kthejë kurrë MA_AT_END, që nuk ka kuptim për bufferin rrethor, pasi ai nuk ka nocionin e fundit. Ky ndryshim duhet ta thjeshtojë ndjeshëm përdorimin e bufferit rrethor si burim të dhënash për ma_sound.
- Funksionit ma_calculate_buffer_size_in_milliseconds_from_frames() iu është bërë një ndryshim i vogël, i cili e bën atë të kthejë një vlerë të rrumbullakosur në numrin më të afërt të tërë.
- Tani, në rast të një inicializimi të dështuar të dekoderit, kthehet kodi i parë i gabimit që haset, në vend të MA_NO_BACKEND, pavarësisht nga gabimi, siç ishte më parë.
- ĂshtĂ« shtuar funksioni ma_device_id_equal() pĂ«r krahasimin e identifikuesve tĂ« pajisjeve.
- ĂshtĂ« shtetur mbĂ«shtetje pĂ«r MA_NO_RUNTIME_LINKING nĂ« backend AAudio.
- Dokumentacioni është azhurnuar.
- Janë korrigjuar gabimet e zbuluara.
Burimi: linux.org.ru
