我想要的是以下内容:
- 当我插入耳机时,我希望取消静音并将声音设置为特定的音量级别。
- 当我拔下耳机时,我希望将声音静音(或设置为特定的音量)。
设置音量级别不是问题,但我需要在拔下/插入耳机时以某种方式执行此操作,所以我正在寻找一种方法来获取这些事件的通知。
我很快发现/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 和其他日志文件。插入/拔出可能会触发一些特定消息。
然后,您可以使用守护进程来解析该日志文件并检测事件。我想您现在知道该怎么做了 :)