繁体   English   中英

为什么PortAudio与其他音频程序不能很好地播放,或者如何将其连接?

[英]Why does PortAudio not play nicely with other audio programs or how can I get it to?

我正在尝试使用PortAudio编写音频应用程序,但是如果在尝试运行程序时正在运行任何其他音频程序(通常是Firefox),则会出现以下错误:

PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
An error occured while using the portaudio stream
Error number: -10000
Error message: Host error.

显然,这使我的程序变得毫无用处,因为如果另一个程序正在使用声音,它将无法正常工作。 有没有办法解决这个问题,还是我不应该使用PortAudio?

您需要为PortAudio选择一个名为“ pulse”的设备才能与PulseAudio一起使用,PulseAudio是当今最大的Linux发行版上用于声卡共享的声音服务器。 错误消息表明它正在尝试使用OSS / dev / dsp接口,该接口根本不支持卡共享。

您可以使用如下代码列出设备:

for (int i = 0, end = Pa_GetDeviceCount(); i != end; ++i) {
    PaDeviceInfo const* info = Pa_GetDeviceInfo(i);
    if (!info) continue;
    printf("%d: %s\n", i, info->name);
}

然后在stream参数中向OpenStream提供正确的编号。

请注意,您需要PortAudio v19。 较早的v18仅支持OSS。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM