我正在使用C.操作系统生成声音样本。操作系统是Linux。硬件是Raspberry Pi 3 Model B.我需要将生成的样本写入与采样率同步的循环缓冲区。 ALSA看起来相当复杂,所以我想有一个旗帜或者其他东西可以用来确保我不会超出或超出缓冲区。因此,如果我每秒使用48000个样本,我想生成下一个样本,并在写完最后一个样本后写入1/48000秒。建议赞赏,以及对良好的ALSA文档的参考。
答案 0 :(得分:1)
为防止欠载,您应该尽量保持缓冲区尽可能充满。
当设备处于(默认)阻塞模式时会自动发生这种情况:当您尝试写入样本但环形缓冲区已满时,该功能会休眠,直到某个空间可用。所以试着尽可能快地写样本。