mini ses 0.11.22

mini ses 0.11.22

24 Şubat'ta, bir yıldan uzun süren geliştirmenin ardından, platformlar arası ses yakalama ve oynatma kütüphanesinin 0.11.22 sürümü yayınlandı mini ses, C dilinde yazılmış ve kamuya açık olarak dağıtılmıştır.
miniaudio, Windows, macOS, Linux, BSD, iOS, Android ve Web (Emscripten üzerinden) dahil olmak üzere tüm büyük masaüstü ve mobil platformlarda herhangi bir üçüncü taraf bağımlılığı olmadan çalışır.
Kütüphane, yerleşik kod çözücüler (WAV, MP3 ve FLAC), gelişmiş miksaj ve efekt işleme (3D dahil), kaynak yönetimi, filtreler, veri dönüştürme ve çok daha fazlasıyla basit, esnek ve modüler bir API'ye sahiptir.

Ana değişiklikler:

  • 0.12 sürümünden başlayarak miniaudio, tek başlık dosyasını terk ederek ayrı bir .c/h dosya çiftine taşınacak. Buna hazırlıklı olmak için depoya miniaudio.c dosyası eklendi. Şimdilik sadece miniaudio.h ve MINIAUDIO_IMPLEMENTATION etrafında bir sarmalayıcı. Miniaudio.h'de hiçbir şey değişmedi, ancak 0.12 sürümü çıktığında derleme için miniaudio.c'yi kullanmanız gerekecek. MINIAUDIO_IMPLEMENTATION'ı kullanmaktan miniaudio.c'yi kullanmaya geçiş yapmanız önerilir. Projenizi tek bir derleme birimi olarak oluşturmaya devam etmek istiyorsanız, #include "miniaudio.c" komutunu kullanabilirsiniz. Bu yöntem 0.12 sürümünden itibaren desteklenecektir.
  • Extras dizinindeki miniaudio_libvorbis.h ve miniaudio_libopus.h dosyaları kullanımdan kaldırıldı. Bunlar artık extras/decoders dizininde ayrı .c ve .h dosyalarına bölünmüş durumda. Uyumluluk için eski dosyalar hala mevcut, ancak yeni sürümlere yükseltmeniz gerekecek. Geçişin basit olması gerekir.
  • MA_SOUND_FLAG_LOOPING ve MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING seçenekleri eklendi. Bunlar, sesleri ve kaynak odaklı veri kaynaklarını varsayılan olarak döngüye sokmak için kullanılabilir. Bu, iş parçacıkları için döngüyü etkinleştirmenin önerilen yoludur. ma_sound_config ve ma_resource_manager_data_source_config'deki isLooping yapılandırma seçenekleri kullanımdan kaldırıldı. Bunları kullanıyorsanız yeni seçeneklere güncelleme yapmalısınız, aksi takdirde gelecekteki bir sürüme güncelleme yaparken derleyici hataları alırsınız.
  • ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() ve ma_pcm_rb_commit_write() artık MA_AT_END döndürmüyor. Bu değişikliğin sebebi, halka tamponunda "son" kavramının olmaması ve bu nedenle sonuç kodunun belirsiz olmasıdır. Ayrıca, bu fonksiyonlar işlem başarıyla tamamlansa bile MA_SUCCESS'ten farklı bir şey döndürebilirdi ki bu da karışıklığa yol açıyordu. Halka tamponunda hala yer olup olmadığını kontrol etmenin doğru yolu, rb_acquire_read/write() fonksiyonları tarafından döndürülen çerçeve sayacına bakmaktır.
  • ma_pcm_rb veri kaynağının uygulanması, isteği karşılamak için halka tamponunda yeterli veri yoksa çıktının sessizlikle doldurulması için değiştirildi. Bu, ma_pcm_rb için ma_data_source_read_pcm_frames()'in artık istediğinizden daha az sayıda kare döndürmemesi gerektiği ve dolayısıyla asla MA_AT_END döndürmeyeceği anlamına gelir; bu, bir son kavramı olmadığından halka tamponu için bir anlam ifade etmez. Bu değişiklik, ma_sound için bir halka tamponunun veri kaynağı olarak kullanılmasını çok daha kolay hale getirmelidir.
  • ma_calculate_buffer_size_in_milliseconds_from_frames() fonksiyonunda, en yakın tam sayıya yuvarlanmış bir değer döndürmesi için küçük bir değişiklik yapıldı.
  • Kod çözücünün başlatılması başarısız olursa, daha önce olduğu gibi hata ne olursa olsun MA_NO_BACKEND yerine artık karşılaşılan ilk hata kodu döndürülür.
  • Cihaz kimliklerini karşılaştırmak için ma_device_id_equal() fonksiyonu eklendi.
  • AAudio arka ucuna MA_NO_RUNTIME_LINKING desteği eklendi.
  • Güncellenmiş belgeler.
  • Tespit edilen hatalar giderildi.

Kaynak: linux.org.ru

Yorum ekle