启用两个应用以使用单个声音设备

时间:2017-10-29 14:23:00

标签: asterisk alsa

我有:

  • USB声音是alsa" Device"或" hw:1,0"
  • Asterisk控制台配置为使用" plughw:1,0"

这样可以让我使用USB Sound通过Asterisk拨打和接听语音电话。

我还想在调用期间使用multimon解码DTMF音调。如果我停止Asterisk我可以运行" aoss multimon -T DTMF"成功解码音调,但为了这样做,我必须像这样创建一个/ etc / asoundrc文件:

pcm.dsp0 { type plug slave.pcm "hw:1,0" }

启动Asterisk,抓住" plughw:1,0"意味着我尝试运行multimon时出错。我相信这是因为任何时候只有一个应用程序可以访问alsa设备。

我想我需要将hw:1,0分成两个新的alsa设备,我一直在尝试使用alsa插件(dmix / multi),但我担心我无法获得我的目标是如何配置这些!

P.S。我想使用multimon,因为我还有其他用例在同一设置上使用它来解码其他音调而不仅仅是DTMF。

1 个答案:

答案 0 :(得分:0)

正如@CL指出的那样,您可以使用dsnoop来分析音频trhough multimon。以下摘录摘自Basic Virtual PCM Devices for Playback/Capture, ALSA | nairobi-embedded

  

dmix [:$ CARD ...]和dsnoop [:$ CARD ...]虚拟PCM设备

  hw [:$ CARD ...]和plughw [$ CARD ...]虚拟PCM设备的限制(在没有硬件混合的系统上)是一次只有一个应用程序可以访问音频流。 dmix [:$ CARD ...](播放)和dsnoop [:$ CARD ...](捕获)虚拟PCM设备允许分别在多个应用程序中混合或共享单个流,而无需声音服务器的干预,即这些设备使用基于ALSA库的原生机制。

相关问题