ALSA snd_pcm_readi& snd_pcm_writei

时间:2014-09-06 22:44:38

标签: linux alsa

snd_pcm_writeisnd_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);

1 个答案:

答案 0 :(得分:0)

snd_pcm_writei()将数据从您自己的缓冲区复制到设备的缓冲区中,仅适用于播放设备。

snd_pcm_readi()将数据从设备缓冲区复制到您自己的缓冲区中,仅适用于捕获设备。