U 24 di ferraghju, dopu più di un annu di sviluppu, 0.11.22 di a libreria di cattura è riproduzione audio multipiattaforma hè stata liberata. miniaudio, scrittu in C è distribuitu in u duminiu publicu.
miniaudio funziona in tutte e piattaforme principali di desktop è mobile, cumprese Windows, macOS, Linux, BSD, iOS, Android è Web (via Emscripten) senza dipendenze di terze parti.
A biblioteca hà una API simplice, flessibile è modulare cù decodificatori integrati (WAV, MP3 è FLAC), mischju avanzatu è trasfurmazioni di effetti (cumprese 3D), gestione di risorse, filtri, cunversione di dati è assai di più.
I cambiamenti principali:
- Partendu da a versione 0.12, u miniaudio si moverà à un paru separatu di schedari .c/h, abbandunendu u schedariu unicu di l'intestazione. Per preparà per questu, un schedariu miniaudio.c hè statu aghjuntu à u repository. À u mumentu hè solu un wrapper attornu à miniaudio.h è MINIAUDIO_IMPLEMENTATION. Nunda hè cambiatu in miniaudio.h, ma quandu a versione 0.12 esce, avete bisognu di utilizà miniaudio.c per a compilazione. Hè cunsigliatu di principià a migrazione da l'usu di MINIAUDIO_IMPLEMENTATION à l'usu di miniaudio.c. Se vulete cuntinuà à custruisce u vostru prughjettu cum'è una sola unità di compilazione, pudete #include "miniaudio.c". Stu metudu serà supportatu in a versione 0.12 è oltre.
- I schedari miniaudio_libvorbis.h è miniaudio_libopus.h in u cartulare extras sò stati deprecated. Avà sò spartuti in schedarii .c è .h separati in u repertoriu extras / decoders. I vechji schedarii esistenu sempre per a cumpatibilità, ma avete bisognu di aghjurnà à e novi versioni. A transizione deve esse triviale.
- Opzioni aghjunte MA_SOUND_FLAG_LOOPING è MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Puderanu esse aduprati per inizializà i soni è e fonti di dati basati nantu à risorse à u ciclu per automaticamente. Questu hè u modu cunsigliatu per attivà u looping per i fili. L'opzioni di cunfigurazione isLooping in ma_sound_config è ma_resource_manager_data_source_config sò state obsolete. Sè l'avete aduprà, duvete aghjurnà à e novi opzioni, altrimenti vi uttene errore di compilatore quandu aghjurnà à una versione futura.
- ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read(), è ma_pcm_rb_commit_write() ùn tornanu più MA_AT_END. U mutivu di stu cambiamentu hè chì ùn ci hè micca cuncettu di "fine" in un buffer di ring, chì hà fattu u codice di u risultatu pocu chjaru. Inoltre, queste funzioni puderanu rinvià qualcosa altru da MA_SUCCESS ancu s'ellu l'operazione hè stata cumpletata cù successu, chì aghjunghjenu a cunfusione. U modu currettu per verificà s'ellu ci hè sempre spaziu in u buffer di l'anellu hè di guardà u cuntatore di frames restituitu da e funzioni rb_acquire_read/write().
- L'implementazione di a fonte di dati ma_pcm_rb hè stata cambiata in modu chì l'output hè pienu di silenziu s'ellu ùn ci hè micca abbastanza dati in u buffer di ring per cumpiendu a dumanda. Questu significa chì ma_data_source_read_pcm_frames() per ma_pcm_rb ùn deve più rinvià un numeru di frames menu di quelli chì avete dumandatu, è dunque ùn vulterà mai MA_AT_END, chì ùn hà micca sensu per un buffer di ring postu chì ùn hà micca cuncettu di fine. Stu cambiamentu duverebbe fà assai più faciule d'utilizà un buffer di ring cum'è fonte di dati per ma_sound.
- Un picculu cambiamentu hè statu fattu à a funzione ma_calculate_buffer_size_in_milliseconds_from_frames() in modu chì torna un valore arrotondatu à l'enteru più vicinu.
- Se l'inizializazione di u decodificatore falla, u primu codice d'errore scontru hè tornatu, invece di MA_NO_BACKEND, indipendentemente da l'errore, cum'è prima era u casu.
- Aggiunta a funzione ma_device_id_equal () per paragunà l'ID di u dispositivu.
- Aghjunghje supportu per MA_NO_RUNTIME_LINKING à u backend AAudio.
- A documentazione aghjurnata.
- L'errori rilevati sò stati corretti.
Source: linux.org.ru
