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