用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/