【问题标题】:ALSA snd_pcm_readi & snd_pcm_writeiALSA snd_pcm_readi & snd_pcm_writei
【发布时间】:2014-10-31 13:31:04
【问题描述】:

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

【问题讨论】:

    标签: linux alsa


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-20
      • 2014-11-18
      • 2016-09-06
      • 2011-01-11
      • 1970-01-01
      • 2015-08-25
      • 2018-01-07
      • 2020-04-11
      • 2010-11-21
      相关资源
      最近更新 更多