自动将声音输出设备切换到蓝牙耳机,并在连接时强制切换到A2DP配置文件


9

在这里使用Mint 17 + MATE。我的蓝牙耳机(Plantronics Backbeat Go2)与我的系统连接良好,但是要使这项工作自动化,我需要采取一些手动步骤,我非常希望将其自动化:

  1. 每次重新启动后,我都必须在终端中运行pactl load-module module-bluetooth-discover才能使设备完全连接。我尝试将其放在外壳程序脚本中以在启动时运行,但没有骰子:(
  2. 我的耳机会自动连接,没有问题,但始终默认为Telephony Duplex(电话双工)甚至是Off(关闭),而不是A2DP。我尝试了几种不同的策略来强制A2DP失败:(
  3. 强制将BT耳机作为默认输出设备。这里也尝试了几种策略...不幸的是,每次我连接耳机时,pacmd的索引似乎都会改变,因此我不能以这种方式在PA conf文件set-default-sink中强制使用默认值。并且使用列出的名称似乎也不起作用-如果没有耳机,它将切换到扬声器,并且如果耳机已连接,则不会切换回:(

感谢您就解决这些问题提出的任何建议!


我认为解决方案与udev无关,但我不确定应如何解决。
hschou

Answers:


0

出现第一个问题是因为Pulse Audio在启动后会卸载蓝牙模块,因此即使将其放在启动脚本中,它仍会在几秒钟后卸载。

  • 解决方案A

    只需在脚本中添加启动延迟,例如:

    sleep 10 && pactl load-module module-bluetooth-discover
    
  • 解决方案B(推荐)

    1. 禁用蓝牙/脉冲音频插件。
    2. 右键点击您的蓝牙图标,选择插件,然后取消选中Pulse Audio插件。
    3. 重新开始。

抱歉,对于您剩下的两个问题,我没有解决方案。


0

关于#3,我的解决方案是这样的:

  • 添加一个合并所有其他设备的统一设备(向所有设备同时输出)
  • 将其用作默认输出设备
  • 保持除BT耳机外的所有其他物理输出静音

好处是,无论是否已连接BT耳机,所有程序都可以向该程序发送输出。然后,一旦连接好耳机,它就会开始接收声音。

如果这样做,则还应该设置flat-volumes = no/etc/pulse/daemon.conf并仅使用音量控制键控制统一输出。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.