虚拟机中的 pyAudio 和 PJSIP

pyAudio and PJSIP in a Virtual Machine

我正在 python 中编写一个 SIP 客户端。我可以在我的电脑上制作我的脚本 运行 就好了。它播放一个 wav 文件,抓取音频,然后使用 sip 会话发送音频。我很难在 AWS ec2 VM 中将其设置为 运行。 VM 是 运行ning SUSE 12。

似乎有很多与音频环回和管道音频相关的问题。但我还没有发现任何似乎包含我遇到问题的所有方式。

我已经尝试弄清楚如何使用 pacmd 进行设置,但还没有成功。我有默认的虚拟输出和虚拟输出监视器,但那没有用。

当我尝试打开流时,我仍然收到无默认输出设备错误。

我想要找到的是一种拥有虚拟声卡(我猜)的方法,我可以将其用于 sip 呼叫的频道并将 wav 文件流式传输到其中。

任何建议或指导都会很有帮助。

提前致谢

好吧,这不是最可靠的解决方案,但它似乎确实有效。

首先,您必须确认您已安装 pulseaudio 并正常工作

使用您需要的任何包安装程序:

apt-get/yum/zypper pulseaudio pulseaudio-devel alsa-lib alsa-devel alsa-plugins-pulseaudio

pulseaudio --开始

pacmd 加载模块模块-null-sink sink_name=MySink

pacmd update-sink-proplist MySink device.description=MySink

这将允许您在虚拟机中传递音频,以便使用 pjsip 将其发送出去。

如果您没有用 python 编写的自己的环回,您可以使用:

pacmd 加载模块模块环回接收器=MySink

传回音频。如果您确实编写了环回,则不能同时使用两者。