我有新耳機,確切地說是 AKG K318,他們有一個這樣的遙控器。在智慧型手機(例如 Android 手機或 iPhone)上,按鈕對應到音樂播放器上的操作,例如播放/暫停、音量增大/減小、跳過、上一曲,您明白了。
我想知道如何在我的計算機上複製相同的功能。
我想像這個過程包括讓 X 識別輸入,然後以某種方式映射這些輸入以供應用程式使用。
「裝置」(將透過聲音插孔連接)未在 中列出xinput
,按鈕也不會觸發常規鍵盤事件。
如何使用插入輸出聲音插孔的耳機作為X鍵輸入?
答案1
那些可在專用設備上用於控制媒體播放器、音量和靜音的「特殊」耳機或入耳式耳機通常在插頭上有四個連接,而普通耳機輸出插孔通常有三個連接。
通常的三個是左通道、右通道和接地(公共),而第四個通常設定為多值電阻,每個按鈕按下時都會在第四根導線(+接地)上呈現一個特定的電阻,媒體設備可以感知並從中確定需要什麼功能。這是一種非常巧妙的方法,可以讓多個按鈕在一根電線上工作,而無需求助於昂貴的數位訊號產生器和其他東西(所有這些都封裝在電線上的那個小斑點中!)。
四個按鈕可能使用四個電阻(任何單位):
volume up: 1 ohm
volume down: 2 ohms
stop: 4 ohms
play: 8 ohms
如果這看起來可疑地像二進制編碼方案......它就是! (你太聰明了!!)使用類似比例的數值,你可以感知 16 個不同的輸出,甚至可以處理同時按下的多個按鍵。噠噠!
老人們可能還記得第一代 iPod,它的音訊輸出插頭旁邊有一個小 4 連接器插孔,許多裝置與音訊插頭一起插入該插孔,從而可以來回發送控制訊號。這已被逐步淘汰,取而代之的是(恕我直言,更酷!)第四線系統......標準耳機將按預期工作,並且設置為與第四線方法連接的耳機也被接受。
但要回答你的問題(最後!!)...不,沒有“標準”方法來啟用你正在尋找的功能。藍牙耳機將是您最好的解決方案。 (我的很酷!)
答案2
據我所知,目前還沒有標準化的方法可以使用有線耳機作為 Linux 的輸入。這意味著您將無法使用耳機來控制音樂播放器 - 另一個藍牙耳機應該可以開箱即用。
答案3
並非適合所有人的解決方案,但我的耳機是單扣式的。顯然,其中一些簡單的耳機按鈕使用一種麥克風訊號機制來檢查麥克風輸入是否「高」(請參閱此郵政和這個郵政)。透過大膽的嘗試,我能夠驗證單擊按鈕會產生語音無法實現的特徵峰值(儘管我還沒有嘗試過尖叫!)。瀏覽互聯網,我使用 sox 提出了以下解決方案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)