เบกเบดเบ™เบดเบชเบฝเบ‡ 0.11.22

เบกเบดเบ™เบดเบชเบฝเบ‡ 0.11.22

เปƒเบ™เบงเบฑเบ™เบ—เบต 24 เป€เบ”เบทเบญเบ™เบเบธเบกเบžเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบ›เบตเบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, 0.11.22 เบ‚เบญเบ‡เบเบฒเบ™เบˆเบฑเบšเบžเบฒเบšเปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเบฝเบ‡เบ‚เป‰เบฒเบกเป€เบงเบ—เบตเป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ. เบกเบดเบ™เบดเบชเบฝเบ‡, เบ‚เบฝเบ™เปƒเบ™ C เปเบฅเบฐเปเบˆเบเบขเบฒเบเบขเบนเปˆเปƒเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ.
miniaudio เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ desktop เปเบฅเบฐเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบกเบทเบ–เบทเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบฅเบงเบกเบ—เบฑเบ‡ Windows, macOS, Linux, BSD, iOS, Android, เปเบฅเบฐเป€เบงเบฑเบš (เบœเปˆเบฒเบ™ Emscripten) เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก.
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบต API เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ, เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เปเบฅเบฐ modular เบเบฑเบšเบ•เบปเบงเบ–เบญเบ”เบฅเบฐเบซเบฑเบ”เปƒเบ™เบ•เบปเบง (WAV, MP3 เปเบฅเบฐ FLAC), เบเบฒเบ™เบ›เบฐเบชเบปเบกเปเบฅเบฐเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบฑเป‰เบ™เบชเบนเบ‡ (เบฅเบงเบกเบ—เบฑเบ‡ 3D), เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เบ•เบปเบงเบเบญเบ‡, เบเบฒเบ™เปเบ›เบ‡เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบปเป‰เบ™เบ•เป:

  • เป‚เบ”เบเป€เบฅเบตเปˆเบกเบˆเบฒเบเป€เบงเบตเบŠเบฑเบ™ 0.12, miniaudio เบˆเบฐเบเป‰เบฒเบเป„เบ›เป€เบ›เบฑเบ™เป„เบŸเบฅเปŒ .c/h เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เป‚เบ”เบเบ›เบฐเบ–เบดเป‰เบกเป„เบŸเบฅเปŒ header เบ”เบฝเบง. เป€เบžเบทเปˆเบญเบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰, เป„เบŸเบฅเปŒ miniaudio.c เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ repository. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆ wrapper เบ›เบฐเบกเบฒเบ™ miniaudio.h เปเบฅเบฐ MINIAUDIO_IMPLEMENTATION. เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™ miniaudio.h, เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบกเบทเปˆเบญเบชเบฐเบšเบฑเบš 0.12 เบญเบญเบเบกเบฒ, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เปƒเบŠเป‰ miniaudio.c เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ‚เปเปเบ™เบฐเบ™เบณเปƒเบซเป‰เป€เบฅเบตเปˆเบกเบเป‰เบฒเบเบˆเบฒเบเบเบฒเบ™เปƒเบŠเป‰ MINIAUDIO_IMPLEMENTATION เป„เบ›เปƒเบŠเป‰ miniaudio.c. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบทเบšเบ•เปเปˆเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบ›เบฑเบ™เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ”เบฝเบง, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” #include "miniaudio.c". เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™เบฎเบธเปˆเบ™ 0.12 เปเบฅเบฐเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™.
  • เป„เบŸเบฅเปŒ miniaudio_libvorbis.h เปเบฅเบฐ miniaudio_libopus.h เปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต extras เป„เบ”เป‰เบ–เบทเบเบเบปเบเป€เบฅเบตเบ. เบ”เบฝเบงเบ™เบตเป‰เบžเบงเบเบกเบฑเบ™เบ–เบทเบเปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เป„เบŸเบฅเปŒ .c เปเบฅเบฐ .h เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปƒเบ™เบฅเบฒเบเบเบฒเบ™ extras/decoders. เป„เบŸเบฅเปŒเป€เบเบปเปˆเบฒเบเบฑเบ‡เบกเบตเบขเบนเปˆเป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰, เปเบ•เปˆเบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบญเบฑเบšเป€เบเบฃเบ”เป€เบ›เบฑเบ™เป€เบงเบตเบŠเบฑเบ™เปƒเปเปˆ. เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ.
  • เป€เบžเบตเปˆเบกเบ•เบปเบงเป€เบฅเบทเบญเบ MA_SOUND_FLAG_LOOPING เปเบฅเบฐ MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบฝเบ‡เปเบฅเบฐเปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ‚เบฑเบšเป€เบ„เบทเปˆเบญเบ™เป‚เบ”เบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบžเบทเปˆเบญ loop เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฒเบกเบฒเบ” looping เบชเปเบฒเบฅเบฑเบš threads. เบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ isLooping เปƒเบ™ ma_sound_config เปเบฅเบฐ ma_resource_manager_data_source_config เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เปเบฅเป‰เบง. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™, เบ—เปˆเบฒเบ™เบ„เบงเบ™เบญเบฑเบšเป€เบเบฃเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบซเบกเปˆ, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡เบ„เบญเบกเบžเบตเบงเป€เบ•เบตเป€เบกเบทเปˆเบญเบญเบฑเบšเป€เบเบฃเบ”เป€เบ›เบฑเบ™เบฎเบธเปˆเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.
  • ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read(), เปเบฅเบฐ ma_pcm_rb_commit_write() เบšเปเปˆเบเบฑเบšเบ„เบทเบ™เบกเบฒ MA_AT_END เบญเบตเบเบ•เปเปˆเป„เบ›. เป€เบซเบ”เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเบกเบตเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡ "เบชเบดเป‰เบ™เบชเบธเบ”" เปƒเบ™ ring buffer, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบ„เบทเบ™เบšเบฒเบ‡เบญเบฑเบ™เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบ MA_SUCCESS เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”, เป€เบŠเบดเปˆเบ‡เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™. เบงเบดเบ—เบตเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบงเปˆเบฒเบเบฑเบ‡เบกเบตเบšเปˆเบญเบ™เบซเบงเปˆเบฒเบ‡เบขเบนเปˆเปƒเบ™ ring buffer เปเบกเปˆเบ™เบเบฒเบ™เป€เบšเบดเปˆเบ‡เบ•เบปเบงเบ™เบฑเบšเบเบญเบšเบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เป‚เบ”เบเบŸเบฑเบ‡เบŠเบฑเบ™ rb_acquire_read/write().
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™ ma_pcm_rb เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบปเบ™เบœเบฐเบฅเบดเบ”เป€เบ•เบฑเบกเป„เบ›เบ”เป‰เบงเบเบ„เบงเบฒเบกเบ‡เบฝเบšเบ–เป‰เบฒเบšเปเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบžเบฝเบ‡เบžเปเปƒเบ™ ring buffer เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ ma_data_source_read_pcm_frames() เบชเปเบฒเบฅเบฑเบš ma_pcm_rb เบšเปเปˆเบ„เบงเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบŸเบฃเบกเบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบญเบตเบเบ•เปเปˆเป„เบ›, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบฐเบšเปเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™ MA_AT_END, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบš ring buffer เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบกเบตเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เบชเบดเป‰เบ™เบชเบธเบ”. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ™เบตเป‰เบ„เบงเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰ ring buffer เป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡ ma_sound.
  • เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเบ•เปเปˆเบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ ma_calculate_buffer_size_in_milliseconds_from_frames() เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒเป€เบ›เบฑเบ™เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเปƒเบเป‰เบ—เบตเปˆเบชเบธเบ”.
  • เบ–เป‰เบฒเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ•เบปเบงเบ–เบญเบ”เบฅเบฐเบซเบฑเบ”เบฅเบปเป‰เบกเป€เบซเบฅเบง, เบฅเบฐเบซเบฑเบ”เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบžเบปเบšเบ•เบญเบ™เบ™เบตเป‰เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ MA_NO_BACKEND เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป€เบ„เบตเบเบžเบปเบšเปƒเบ™เป€เบกเบทเปˆเบญเบเปˆเบญเบ™.
  • เป€เบžเบตเปˆเบกเบŸเบฑเบ‡เบŠเบฑเบ™ ma_device_id_equal() เบชเบณเบฅเบฑเบšเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš ID เบญเบธเบ›เบฐเบเบญเบ™.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš MA_NO_RUNTIME_LINKING เปƒเบชเปˆ AAudio backend.
  • เบญเบฑเบšเป€เบ”เบ”เป€เบญเบเบฐเบชเบฒเบ™เปเบฅเป‰เบง.
  • เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบเบงเบ”เบžเบปเบšเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปเบฅเป‰เบง.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: linux.org.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™