![pavucontrol 不会更改某些应用程序的输出](https://linux22.com/image/136128/pavucontrol%20%E4%B8%8D%E4%BC%9A%E6%9B%B4%E6%94%B9%E6%9F%90%E4%BA%9B%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E8%BE%93%E5%87%BA.png)
我有一副与电脑配对的蓝牙耳机。如果在 pavucontrol 中选择某些应用程序,则可以播放它们。但其他人不让我选择它们。事实上,我根本无法更改这些应用程序的输出。我可以单击该按钮并查看列表(如屏幕截图所示),但如果我选择不同的选项,它会直接返回到 HD-Audio Generic。其他应用程序(例如 Spotify,如屏幕截图所示)允许我毫无问题地从一台设备切换到另一台设备。这是怎么回事?
我还尝试通过命令行使用更改接收器pactl
,但由于某种原因它返回“无效参数”。中描述了几乎相同的情况这个线程,但不幸的是从未得到答复。
这是来自的接收器输入数据pactl
:
Sink Input #8
Driver: protocol-native.c
Owner Module: 11
Client: 24
Sink: 0
Sample Specification: float32le 2ch 44100Hz
Channel Map: front-left,front-right
Format: pcm, format.sample_format = "\"float32le\"" format.channels = "2" format.channel_map = "\"front-left,front-right\""
Corked: no
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Buffer Latency: 54807 usec
Sink Latency: 23177 usec
Resample method: copy
Properties:
media.role = hex:
phonon.streamid = hex:
media.name = "Playback Stream"
application.name = "bioshock.i386"
native-protocol.peer = "UNIX socket client"
native-protocol.version = "26"
application.process.id = "10390"
application.process.user = "john"
application.process.host = "strangelove"
application.process.binary = "bioshock.i386"
application.language = "C"
window.x11.display = ":0"
application.process.machine_id = [redacted]
application.process.session_id = "2"
module-stream-restore.id = "sink-input-by-application-name:bioshock.i386"
我正在运行 Linux Mint 18.3“Sylvia”、KDE Plasma 5.8.9、KDE Framework 5.36.0 和pulseaudio 8.3。 Steam 上的《BioShock Infinite》是一款顽固的、不会切换设备的应用程序。我还测试了 The Talos Principle(同样来自 Steam)64 位版本,它也不允许我更改输出。
答案1
我终于找到了解决方案:https://steamcommunity.com/app/93200/discussions/0/864959809826195633/
似乎有些应用程序使用称为 OpenALsoft 的东西来控制音频,并且它有一个配置选项可以禁止接收器更改。要禁用该选项,您可以创建一个配置文件。
〜/.alsoftrc
[pulse]
allow-moves=yes
答案2
我的系统还需要“驱动程序”线。
〜/.alsoftrc
drivers = alsa,pulse,core,oss
[pulse]
allow-moves=yes