我正在使用 Ubuntu Lucid (10.04)。在以 root 身份运行的 shell 脚本中,我想检测音频线(模拟插孔)是否连接到笔记本电脑。我怎么做?我不需要便携式解决方案,我需要一些可以在我的笔记本电脑上运行的东西,无论多么笨拙。
Run*_*ium 14
一种方法可能是使用amixer.
插孔插入:
$ amixer -c 0 contents
numid=29,iface=CARD,name='Front Headphone Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
...
Run Code Online (Sandbox Code Playgroud)
插孔未插入:
$ amixer -c 0 contents
numid=29,iface=CARD,name='Front Headphone Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
...
Run Code Online (Sandbox Code Playgroud)
所以对于那个特定的我可以这样做:
amixer -c 0 contents | \
awk -F"," '
$1 == "numid=29" {
c=1
} c && /: values/ {
split($0, a, "=")
print a[2];
exit
}'
Run Code Online (Sandbox Code Playgroud)
给出onor 的输出off。
还可以使用命令并通过iface+name等指定,例如:
通过以下方式获取列表:
$ amixer -c 0 controls
Run Code Online (Sandbox Code Playgroud)
其中-c 0指定卡,默认不需要或只有一张。然后例如:
$ amixer -c 0 cget numid=29,iface=CARD
$ amixer -c 0 cget numid=29,iface=CARD | awk -F"=" 'NR == 3 {print $2;}'
Run Code Online (Sandbox Code Playgroud)
我曾经遇到过一个软件,相信它使用了 Tcl/Tk,它显示了计算机上所有端口的引脚电源+许多其他硬件信息。这是一款不错的软件——但我再也找不到了。我已经看过 12 个旧硬盘,但没有运气。我用它来调试一些插孔端口。所以是的,绝对可以轮询特定端口的状态。
由于JACK , Jack 很难在网上搜索。这使它几乎不可能。
我有一些 C 代码可以做一些声卡信息轮询。一定要看看能不能找到。