我有一个板载声卡,还有一个连接的蓝牙耳机。我已在以下位置配置了蓝牙设备/etc/asound.conf
:
# cat /etc/asound.conf
pcm.bluetooth {
type bluetooth
device 12:34:56:78:9a:bc
profile "auto"
}
ctl.bluetooth {
type bluetooth
}
默认情况下,板载卡用于所有声音(显然,默认板载卡甚至不需要在 asound.conf 中列出)
当我希望应用程序使用我的蓝牙 alsa 设备时,我必须指定它,例如:
mplayer -ao alsa:device=bluetooth file.mp3
这对我来说很好。但我需要一种方法来告诉我的浏览器也使用蓝牙 alsa 设备。
我找到了一种使用命令行选项启动 chromium 的方法--alsa-output-device
:
chromium --alsa-output-device=bluetooth
我需要类似的方式来启动 Firefox,但我找不到。
我如何告诉 Firefox 使用我的蓝牙 alsa 设备,而无需/etc/asound.conf
每次~/.asoundrc
修改?
更新:
我听从了@lgeorget 的建议,/etc/asound.conf
现在我的情况是这样的:
pcm.!default {
type plug
slave.pcm {
@func getenv
vars [ ALSAPCM ]
default "hw:0,0"
}
}
pcm.bluetooth {
type bluetooth
device 12:34:56:78:9a:bc
profile "auto"
}
ctl.bluetooth {
type bluetooth
}
当我使用 启动 Firefox 时ALSAPCM=bluetooth firefox
,我的蓝牙耳机确实有声音,但 Firefox 以 100% CPU 运行(在我的 4 个核心上),并且 YouTube 视频以 10 倍速度播放(并且声音相应地(乱码)。我不知道当我在没有 的情况下启动 Firefox 时ALSAPCM=bluetooth
,一切正常,并且声音在默认的 alsa 设备上播放。
答案1
显然 Firefox 没有这个选项,但您可以通过环境变量操纵 ALSA 输出。
尝试例如:
ALSA_PCM_CARD=bluetooth firefox
或者,如果这不起作用,请尝试编写一些 .asoundrc 脚本
pcm.!default {
type plug
slave.pcm {
@func getenv
vars [ ALSAPCM ]
default "hw:hdmi"
}
}
(将“hw:hdmi”替换为您的普通 pcm)。然后,如果您希望程序使用特定的 PCM,请使用:
ALSAPCM=bluetooth firefox
资料来源:
答案2
备注:当前的 Firefox 版本似乎出于未知原因忽略了 ~/.asound.conf。
如果您不使用pulseaudio(它主要是alsa上不需要的一层,尽管大多数发行版都安装了它),那么在大多数情况下,您只需选择默认音频输出到另一个。
.asound.conf
您可以在家中通过以下方式完成此操作:
pcm.!default {
type hw
card N
}
ctl.!default {
type hw
card N
}
用一个小整数替换N
,0 代表您的第一个声卡(这是默认值),1 代表第二个声卡,依此类推。
!
这里的 in并不是!default
否定!它是对先前(系统范围定义的)全局 alsa.conf 的重写。
更多棘手的配置可以阅读这里。
答案3
它看起来就像是一个化身这个错误。有一些解决方案建议,但它们似乎是英特尔特定的。
尝试使用脉冲音频。如果有效,您可以使用以下命令将 ALSA 程序重定向到pulseaudio asound.conf
:
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}
如果这没有帮助,请尝试将rate 44100
或添加rate 48000
到pcm.bluetooth
您的asound.conf
.也许到那时 ALSA 就会明白过来。
你也可以尝试Html5 Youtube 视频速度控制器,尽管我怀疑这会有帮助。