python - 虚拟机中的 pyAudio 和 PJSIP

标签 python audio amazon-ec2 pjsip pyaudio

我正在用 python 编写一个 SIP 客户端。我能够让我的脚本在我的电脑上运行得很好。它播放一个 wav 文件,抓取音频,然后使用 sip session 将音频发送出去。我很难让它在 AWS ec2 VM 中运行。 VM 正在运行 SUSE 12。

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

我已经尝试弄清楚如何使用 pacmd 进行设置,但还没有运气。我将虚拟输出和虚拟输出监视器作为默认设置,但这不起作用。

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

我想要找到的是一种拥有虚拟声卡(我猜)的方法,我可以在 sip 调用中为 channel 使用它并将 wav 文件流式传输到其中。

任何建议或方向都会非常有帮助。

提前致谢

最佳答案

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

首先,您必须验证您已安装并运行 pulseaudio

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

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

脉冲音频——开始

pacmd load-module module-null-sink sink_name=MySink

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

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

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

pacmd load-module module-loopback sink=MySink

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

关于python - 虚拟机中的 pyAudio 和 PJSIP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37712275/

相关文章:

Python - 通过字典进行类型转换循环

javascript - 不将图片悬停时停止播放声音

amazon-ec2 - 重用 Amazon Elastic MapReduce 实例

asp.net-mvc - 将 ASP.NET 应用程序部署到多个 EC2 实例有哪些方法?

python - Sklearn 使用自然语言处理数值数据

python - 在 Pandas 中选择两个 DataFrame 之间的唯一行

python - 正则表达式匹配之间的字符串列表

android - 如何避免音频重叠

ios - 出现此播放符号时如何启动进程

r - 用于短期任务的 Amazon EC2 按需工作人员