snd_pcm_writei
和 snd_pcm_readi
有什么区别?当我尝试使用这两个功能时,它们似乎都在从缓冲区中播放?似乎只有 handle 的配置方式 SND_PCM_STREAM_CAPTURE/SND_PCM_STREAM_PLAYBACK
决定了结果。我的印象是写是为了回放而阅读是为了捕捉。
有人可以澄清这一点并发布一个很好的 ALSA 教程吗?
frames = snd_pcm_writei(handle, Buffer, Size);
frames = snd_pcm_readi(handle, Buffer, Size);
最佳答案
snd_pcm_writei()
将数据从您自己的缓冲区复制到设备的缓冲区,并且仅适用于播放设备。
snd_pcm_readi()
将数据从设备的缓冲区复制到您自己的缓冲区,并且仅适用于捕获设备。
关于linux - ALSA snd_pcm_readi & snd_pcm_writei,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25705462/