此处使用 Mint 17 + MATE。我的蓝牙耳机 (Plantronics Backbeat Go2) 与我的系统连接得很好,但我必须采取几个手动步骤才能完成这项工作,我非常希望将其自动化:
- 每次重新启动后,我都必须在终端中运行 pactl load-module module-bluetooth-discover 才能使设备完全连接。我尝试将其放入 shell 脚本中以在启动时运行,但没有骰子:(
- 我的耳机会自动连接,没有任何问题,但它始终默认为“电话双工”甚至“关闭”,而不是 A2DP;我尝试过几种不同的策略来强制 A2DP,但都失败了:(
- 强制 BT 耳机作为默认输出设备。这里也尝试了几种策略...不幸的是,每次我连接耳机时,pacmd 的索引似乎都会改变,所以我无法以这种方式在 PA conf 文件 set-default-sink 中强制使用默认值。并且使用列出的名称似乎也不起作用 - 如果耳机不存在,它会切换到扬声器,并且如果耳机连接则不会切换回来:(
感谢您对解决这些问题提出的任何建议!
答案1
关于#3,我的解决方案是这样的:
- 添加一个合并所有其他设备的统一设备(同时输出到所有设备)
- 使用它作为默认输出设备
- 除 BT 耳机外,将所有其他物理输出保持静音
这样做的好处是,无论是否连接 BT 耳机,所有程序都可以向其发送输出。然后,一旦耳机连接,它就会开始接收声音。
如果您这样做,那么您还应该设置flat-volumes = no
为/etc/pulse/daemon.conf
并且仅使用音量控制键控制统一输出。
答案2
使用 udev 规则在连接时切换配置文件(或运行任何其他pulseaudio命令)的解决方案:
ACTION=="add", SUBSYSTEM=="input", ATTR{phys}=="<your headset addr>", RUN+="/usr/bin/su - <your username> -c '/usr/bin/pactl set-card-profile <your card id> a2dp_sink'"
其他配置文件选项包括“handsfree_head_unit”、“headset_head_unit”和“off”。
您可以通过以下方式获取卡的 ID:
pactl list cards short
答案3
出现第一个问题是因为 Pulse Audio 在启动后会卸载蓝牙模块,因此即使您将其放入启动脚本中,它仍然会在几秒钟后被卸载。
方案A
只需在脚本中添加启动延迟,例如:
sleep 10 && pactl load-module module-bluetooth-discover
方案B(推荐)
- 禁用蓝牙/脉冲音频插件。
- 右键单击蓝牙图标,选择插件,然后取消选中脉冲音频插件。
- 重新开始。
抱歉,我无法解决您剩下的两个问题。