gpt4 book ai didi

c++ - 使用 ALSA 的函数 snd_pcm_writei 我可以立即释放样本缓冲区吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:12:30 26 4
gpt4 key购买 nike

用ALSA播放音频,调用snd__pcm__writei后,是立即释放sample buffer还是需要等声音播放完再释放sample buffer?

例如:

unsigned short *buffer;

buffer = malloc(size of sample to play);
...load data into buffer...
snd_pcm_writei (playback_handle, buffer, size of sample)
free(buffer)

最佳答案

找出答案的最简单方法是从缓冲区末尾开始向后写入,看看是否影响音频播放。如果这样做,那么您肯定无法释放缓冲区。如果这没有什么区别,那么您可以安全地释放缓冲区,因为声卡不会从该特定内存块读取数据。

关于c++ - 使用 ALSA 的函数 snd_pcm_writei 我可以立即释放样本缓冲区吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1315250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com