snd_pcm_writei
和snd_pcm_readi
之间有什么区别?当我尝试使用它们时,这两个函数似乎都在从缓冲区回放?似乎只是如何配置句柄SND_PCM_STREAM_CAPTURE/SND_PCM_STREAM_PLAYBACK
确定结果。我的印象是写作是为了回放和阅读以进行捕捉。
有人可以澄清这个并为ALSA发布一个好的教程吗?
frames = snd_pcm_writei(handle, Buffer, Size);
frames = snd_pcm_readi(handle, Buffer, Size);
答案 0 :(得分:0)
snd_pcm_writei()
将数据从您自己的缓冲区复制到设备的缓冲区中,仅适用于播放设备。
snd_pcm_readi()
将数据从设备缓冲区复制到您自己的缓冲区中,仅适用于捕获设备。