声音插孔中的耳机遥控器作为X输入


28

我有新的耳机,确切地说是AKG K318,它们有一个遥控器。在智能手机(例如Android手机或iPhone)上,这些按钮会映射到音乐播放器上的操作,例如播放/暂停,调高/调低,跳过,上一步等,您便会明白。

我想知道如何在计算机上复制相同的功能。

我想象该过程包括让X识别输入,然后以某种方式映射这些输入以供应用程序使用。

“设备”(将通过声音插孔连接)未在中列出xinput,按钮也不会触发常规键盘事件。

如何将插入输出声音插孔的耳机用作X键输入?



1
3年后,接受的答案(“无法完成”)是否仍然正确?我的Bose耳机随附用于iPhone和Android(特别是三星)的不同电缆;我有Android电缆,想知道是否可以在Linux上使用它。
达伦·库克

我的感觉是,这更多是功能请求,而该功能暂时不受支持。
jonallard

Answers:


41

那些可以在专用设备上用来控制媒体播放器,音量和静音的“专用”耳机,通常在插头上有四个连接,而普通的耳机输出插孔只有三个。

通常的三个是左通道,右通道和接地(公用),而第四个通常设置为多值电阻,按下时每个按钮都会在第四根导线(+接地)上呈现特定的电阻,该电阻是媒体设备可以感知并由此确定需要什么功能。一种非常巧妙的方法,它可以使多个按钮脱离一根电线,而无需诉诸昂贵的数字信号发生器和东西(所有东西都包装在电线上的那个小斑点中!)。

四个按钮可能使用四个电阻(任意单位):

volume up:   1 ohm
volume down: 2 ohms
stop:        4 ohms
play:        8 ohms

如果这看起来像一个可疑的二进制编码方案,那就是!!(你真聪明!)使用类似比率的值,即使同时处理多个按键,您也可以感应到16种不同的输出。塔阿达!

老年人可能还记得第一批iPod,它的音频输出插头旁边有一个4连接器插孔,许多设备在其音频插头旁边插入了这些插头,从而可以来回发送控制信号。逐步淘汰了该设备,以支持(imho cooler!)第四线制...标准耳机将按预期工作,并且接受与第四线方法对接的耳机。

但是要回答您的问题(最后!)...不,没有“标准”方法可以启用您要寻找的功能。蓝牙耳机将是您最好的解决方案。(我的很酷!)


8
是的,我把我所有的玩具拆开了……
lornix 2012年

5
“ ...甚至可以同时处理多个按键。” 当时它不遵循二进制方案,例如按play和Vdown给出(8 * 2)/(8 + 2)或1.6欧姆。
伊格纳西奥·巴斯克斯

2
将有16个不同的值,不一定是升序或降序的值...可以感知各种值。它是由4个具有打开/关闭位置的按钮组成的矩阵,因此仅是“二进制”。很高兴知道有人在检查我。
lornix 2012年

1
保持诚实诚实就是全部。
伊格纳西奥·巴斯克斯

1
如果你是“幸运”的,足有一个组合耳机和麦克风插孔笔记本/上网本那么它也许可以编写一个脚本,侦听不同的噪声模式对输入麦克风的信号,每个按钮按下产生,并作出反应对他们适当。
Poundex

5

据我所知,目前还没有标准化的方法将有线耳机用作Linux的输入。这意味着您将无法使用耳机来控制音乐播放器-另一个耳机应该可以直接使用。


1

并非所有人都可以解决,但我的耳机只有一个按钮。显然,其中一些简单的耳机按钮使用一种麦克风信号机制来检查麦克风输入是否为“高”电平(请参阅本文章和本文章)。使用audacity,我能够验证单击按钮是否生成了语音无法达到的特征峰值(尽管我没有尝试尖叫!)。环顾互联网,我想到了使用sox's的以下解决方案rec

#!/usr/bin/sh

while true; do 
    rec -n stat trim 0 .5 2>&1 | awk '/^Maximum amplitude/ && $3 > 0.89' | grep -q 'M' && playerctl play-pause
done

playerctl是控制媒体播放的程序。该.5代码表示MIC POL分辨率。如果要实现双击,可以使用此值。0.89指示按下按钮的阈值。(推时我的基本上等于1)

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.