如何在拔下/插入耳机时自动改变音量?

如何在拔下/插入耳机时自动改变音量?

我想要的是以下内容:

  • 当我插入耳机时,我希望取消静音并将声音设置为特定的音量级别。
  • 当我拔下耳机时,我希望将声音静音(或设置为特定的音量)。

设置音量级别不是问题,但我需要在拔下/插入耳机时以某种方式执行此操作,所以我正在寻找一种方法来获取这些事件的通知。

我很快发现/proc/asound/card0/codec#0可以指示耳机是否插入,所以我尝试使用来监控它inotifywait,并根据它来更改音量修改的通知。不幸的是,inotifywait失败了,因为进程不是一个普通的文件系统。

还有其他方法可以做到这一点吗(也许通过 PulseAudio)?

音频设备:英特尔高清音频解决方案、音频编解码器:Conexant CX20585


总结一下我迄今为止尝试过的方法:

  • Ear Candy:根本无法在我的系统上运行。似乎是一个被放弃的项目?
  • 发布的代码卡尔·比勒费尔特可能在某些硬件上运行,但在我的硬件上运行不了。
  • 这个想法来自史蒂芬·保尔格由于缺少“扬声器”频道而失败。
  • 动机aking1012我通过修改内核代码(找到编解码器的插孔感应代码后)使其工作,但这是一个相当麻烦的解决方案。

所以,我仍在寻找一种简单的方法来做到这一点。

答案1

在 Oneiric 的 UDS 期间,有一个关于插孔检测的会议。请参阅蓝图了解详情。听起来这正是我想要的:不同的设备有不同的音量级别 - 只是不是在每个硬件上:

<htorque> 我很好奇的是:我是否很快就能为不同的设备设置不同的音量级别(例如,内部声音静音,耳机 75%)?

<coling> 将会支持(在某些硬件上)是的。时间刻度“很快” :p
<coling> (我还希望在插孔插入/拔出时显示 OSD(带有当前音量))

11.10 更新

现在应该是在 Oneiric 工作- 不幸的是,我的 ThinkPad T510 似乎是目前不受支持的系统之一。

David Henningsson 的另一个后续问题:

长话短说,这是一个令人向往的功能,我们正朝着这个方向努力,但进展缓慢,因为这个功能比乍一看的要复杂得多。

好消息是:在即将推出的 Ubuntu Oneiric (11.10) 中,此功能确实有效。坏消息是:此功能并不适用于所有人。

更多的这里

12.04 更新

它现在可以与我的 ThinkPad T510(以及许多其他型号)在 Ubuntu 12.04(开发版本)上运行。

答案2

要从控制台设置音量级别,请使用命令 amixer。例如:

amixer sset 主播放 0%

将会把你的等级设为 0%

我不知道插入耳机时如何更改此设置...但也许有人可以帮你

答案3

耳糖具有一些处理耳机插入/移除的功能。

答案4

检查 dmesg 和其他日志文件。插入/拔出可能会触发一些特定消息。

然后,您可以使用守护进程来解析该日志文件并检测事件。我想您现在知道该怎么做了 :)

相关内容