gpt4 book ai didi

pulseaudio - 按属性查找pulseaudio sink-input索引

转载 作者:行者123 更新时间:2023-12-04 19:36:41 24 4
gpt4 key购买 nike

两者的输出 pactl list sink-inputspacmd list-sink-inputs包含一个属性部分:

Properties:
media.name = "ALSA Playback"
application.name = "ALSA plug-in [snapclient]"
native-protocol.peer = "UNIX socket client"
native-protocol.version = "29"
application.process.id = "6393"
application.process.user = "root"
application.process.host = "xxxxxx"
application.process.binary = "snapclient"
application.language = "C"
application.process.machine_id = "8dadf95c2f504864bc0f8b3ab149cbe0"
application.process.session_id = "c4"
module-stream-restore.id = "sink-input-by-application-name:ALSA plug-in [snapclient]"

我想知道是否有办法通过 application.process.id 直接查找接收器输入的索引或 application.process.binary ,无需解析上述命令的多行输出或编写单独的 C 程序。

最佳答案

有些命令也接受唯一名称而不是 id,但是您尝试使用的命令似乎无法这样做.. 可能是因为名称不是唯一的,并且可能存在多个匹配项。你需要自己解析。这就是我想出的:

pacmd list-sink-inputs |
tr '\n' '\r' |
perl -pe 's/.*? *index: ([0-9]+).+?application\.name = "([^\r]+)"\r.+?(?=index:|$)/\2:\1\r/g' |
tr '\r' '\n'
perl -pe就像 sed ,只是更好。这基本上匹配 [anything] [index]: [id] [anything] [application.name] = [name] [anything]并将输出格式化为类似
"speech-dispatcher":166
"SoX":407
"Clementine":413
然后您可以使用 grep 或 sed。
也许你想调整 application\.name更适合你的东西。

关于pulseaudio - 按属性查找pulseaudio sink-input索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39736580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com