使用ALSA播放音频,在调用 snd__pcm__writei 后,我是否可以立即释放声音样本缓冲区,还是需要等到声音播放完毕才能释放样本缓冲区? / p>
例如:
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)
答案 0 :(得分:0)
最简单的方法是从缓冲区的末尾开始向后写,看看是否影响音频播放。如果你这样做,你肯定无法释放缓冲区。如果它没有任何区别,那么你可以安全地释放缓冲区,因为声卡没有从那个特定的内存块中读取。