![](/img/trans.png)
[英]Can't build PortAudio for i386 to make it play nice with NI's DAQmxBase
[英]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.