オーディオケーブルが接続されていることをどのように検出しますか?

オーディオケーブルが接続されていることをどのように検出しますか?

私はUbuntu Lucid(10.04)を使用しています。ルートとして実行されるシェルスクリプトで、オーディオケーブル(アナログジャック)がラップトップに接続されているかどうかを検出したいと思います。どうすればいいですか?ポータブルソリューションは必要ありません。いくら昔ながらでもラップトップで実行できることが必要です。

ベストアンサー1

1つの方法はを使用することですamixer

Jackが次のように挿入しました。

$ amixer -c 0 contents
numid=29,iface=CARD,name='Front Headphone Jack'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
...

ジャックが接続されていません:

$ amixer -c 0 contents
numid=29,iface=CARD,name='Front Headphone Jack'
  ; type=BOOLEAN,access=r-------,values=1
  : values=off
...

したがって、特定の項目に対して次のようにすることができます。

amixer -c 0 contents | \
awk -F"," '
$1 == "numid=29" {
    c=1
} c && /: values/ {
   split($0, a, "=")
   print a[2];
   exit
}'

onまたはの出力を提供しますoff


ifaceコマンドを使用して+などで指定することもできますname。たとえば、次のようになります。

リストを取得する方法:

$ amixer -c 0 controls

どの-c 0カードが指定されているか、デフォルトの場合は不要、または1つだけが必要です。たとえば、次のようになります。

$ amixer -c 0 cget numid=29,iface=CARD

$ amixer -c 0 cget numid=29,iface=CARD | awk -F"=" 'NR == 3 {print $2;}'

私はかつてTcl / Tkを使用すると考えられているソフトウェアを見つけました。それは素晴らしいソフトウェアですが、もう見つかりません。 12台の古いハードドライブをスキャンしましたが、成功しませんでした。一部のジャックポートをデバッグするために使用します。はい。特定のポートの状態をポーリングすることは絶対に可能です。

Jackはオンラインで検索するのが難しいです。ジャック。これはこれをほとんど不可能にします。


サウンドカード情報をポーリングするCコードがあります。見つけることができることを確認する必要があります。

おすすめ記事