2

当我尝试执行openFrameworks附带的 audioOutputExample 时,我得到

RtApiAlsa::getDeviceIno: snd_pcm_open 设备错误 (hw:0,0),设备或资源忙。

RtApiAlsa::probeDeviceOpen: pcm 设备 (hw:0,0) 不会打开输出。

RtApi:: 流未打开!

进程返回 0 (0x0) 执行时间:3.462 s 按 ENTER 继续。

什么时候

  • 节奏盒正在播放
  • Rhythmbox 最近播放过(不到 5 秒前)
  • Firefox 有一个带有 Grooveshark 的标签,可以播放音乐或暂停
  • Groovshark 选项卡最近已关闭(不到 5 秒前)
  • Firefox 有一个带有 Youtube 视频的标签,可以播放或暂停
  • Youtube 标签最近关闭(不到 5 秒前)

否则,即使我以前使用过 Rhythmbox、Grooveshark 或 Youtube,该示例也可以正常工作。

如何解决这个冲突以允许同时使用 audioOutputExample 和 Rythmbox。

PS我在Ubuntu 11.04上,使用openFrameworks_v0062_linux64_FAt ...

4

2 回答 2

2

这只是一个猜测,因为我不在 Linux 上使用 OF,但我认为 OF 需要访问低级 ALSA 设备才能获得 RT 功能。因此,它不能与 PulseAudio(或他们现在使用的任何东西)共享设备,这允许在应用程序之间共享音频设备。您可以尝试查看 JACK 以在 PulseAudio 和您的 ALSA 程序之间进行多路复用。

于 2011-07-05T19:26:30.130 回答
1

我找到了解决方案。问题是,我注册了两个内部声音设备 - HDMI 和 PCH。HDMI 设备始终分配为card0,可以通过键入来检查

aplay -l 

进入终端。这将列出不同的设备。

然后我改变了我的 alsa 配置使用

gksudo gedit /etc/modprobe.d/alsa-base.conf

并在最后添加

options snd-hda-intel index=-2

从而强制将 HDMI 分配给 card1,将其他设备分配给 card0。另一种选择是放

options snd-hda-intel id=PCH,HDMI index=0,1

分配卡片索引。但是,我在这里读到HDMI,PCH,这并不适合所有人。

请注意,此方法的详细信息取决于您计算机中的设备。通过键入aplay -l查找 alsa 已知的那些。

于 2014-04-23T23:15:12.330 回答