如何解决如何在Raspberry Pi 3上使用Alsa lib正确混合声音?
我正在使用Raspberry Pi 3和PJSIP库创建VoIP应用程序,执行通话时无法播放录制的wav声音。 (例如,我的录音可能是“通话已启动”或“通话已结束”)。我需要同时听到远程端点。
目前,我可以正确地听到来自远程端点传到Raspberry Speaker的声音。
我还使用Alsa aplay命令成功播放了多个.wav文件。为此,我遵循了alsa documentation
中混合软件的文档阻塞点是在听远程扬声器的声音的同时播放录音。当我在一次通话中使用aplay手动播放wav声音时,它表明我的设备正忙:
pi@raspberrypi:~/Laboratory $ aplay test.wav
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
aplay: main:828: error opening audio: Device or resource busy
这是我的〜/ .asoundrc文件,用于使用alsa软件混合:
pcm.!default {
type plug
slave.pcm "dmixer"
}
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 4096
rate 44100
}
bindings {
0 0
1 1
}
}
ctl.dmixer {
type hw
card 0
}
我对以下几点进行了调查:
- 我想知道我的PJSIP应用程序是否正确使用了我的alsa“ dmixer”插件。如果没有,如何强制使用此插件?
- 我不确定asoundrc文件中定义的44100 Hz采样率。它会与通话采样率冲突吗?
- 我也不喜欢“ period time”,“ period_size”,“ buffer_size”这样的主题。它们可能是错误的值吗?
- 我的wav文件是否与Pjsip库不兼容? (只是个主意)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。