如果加载了 chan_alsa,星号会锁定 ALSA 设备

如果加载了 chan_alsa,星号会锁定 ALSA 设备

我正在实现一个扩展 900,它将音频路由到 ALSA 设备。我也在使用 mpd,它通过 ALSA 播放音乐。

星号 15、OpenWrt 18.06

mpd.conf:

log_file "syslog"

bind_to_address "127.0.0.1"
bind_to_address "192.168.1.18"

input {
    plugin          "curl"
}

audio_output {
    type            "alsa"
    name            "sun4icodec"
    device          "hw:0,0"
    mixer_control   "Power Amplifier"
}

extensions.conf这是与扩展相关的部分:

;SIP 900
exten => 900,1,NoOp(Testing calls to speakers. Dialing ${EXTEN} from ${CALLERID})
same => n,System(kill -9 `pgrep mpg123`)
same => n,System(amixer set 'Power Amplifier' 80%)
same => n,System(/usr/bin/aplay /var/lib/myapp/sounds/tone3.wav &)
same => n,System(sleep(4))
same => n,NoOp(Testing calls to speakers. Dialing ${EXTEN} from ${CALLERID})
same => n,Dial(CONSOLE/ALSA)
same => n,Hangup()
same => n,System(sleep(1))
same => n,System(amixer set 'Power Amplifier' 80%;)
same => n,System(sleep(4))

当 chan_alsa 加载时,它会锁定 ALSA 设备,当在 mpd 上播放某些内容时,我收到以下错误:

aplay: main:722: audio open error: Resource busy

我遇到了这个VoIP信息,但我不确定如何实现这一点。不确定我是否需要调整软件和/或硬件混合。

  • 输出设备= <ALSA 设备名称>

    指示用于播放声音(即用于收听)的 ALSA 设备的名称。此处指定的设备名称会原封不动地传递到 ALSA 声音层,因此任何 ALSA 设备名称都应该有效。 警告:Asterisk 可能会在 Asterisk 进程运行的整个期间锁定此处指定的 ALSA 设备。您可能需要调整软件和/或硬件混合设置,以防止 Asterisk 占用您的输出设备。

答案1

这意味着您需要允许同时访问的混音器。

但您的任务可以通过卫生部轻松完成。

相关内容