如何通过DBus获取PulseAudio的源优先级
How to get PulseAudio's source priority via DBus
我正在开发一个 golang
软件,旨在使用 pulseaudio 处理(静音和取消静音)Linux 系统中当前启用的麦克风。
我的软件正在尝试使用 DBUs
界面与 pulseaudio 交互。
如果计算机连接了多个麦克风,我需要通过查看 priority
属性 来源找到启用的麦克风。
例如,这是 pacmd list-sources
命令的修剪输出:
4 source(s) available.
index: 0
name: <alsa_output.pci-0000_00_1f.3.analog-stereo.monitor>
...
priority: 1030
...
index: 1
name: <alsa_input.pci-0000_00_1f.3.analog-stereo>
...
priority: 9039
...
index: 2
name: <combined.monitor>
...
priority: 1000
...
* index: 4
name: <alsa_input.usb-046d_0825_6C7C2E60-02.mono-fallback>
...
priority: 9040
...
事实上,在我的系统中,索引为 4 的源是活动源。
我的问题:我找不到从 DBUs
界面中获取 priority
属性 的方法。
根据 documentation,Source
和 Device
对象均未公开名为 Priority
的 属性。
仅有 Priority
字段的对象是 DevicePort
和 CardProfile
。我得到了这些属性的值,但它们的值与 pacmd
.
的输出不匹配
你知道我是否以及在哪里可以获得优先级值吗?
在撰写本文时,根本不可能获得资源的优先级。
有一个开放的合并请求(由我)添加支持:https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/531
无论如何,这个主题比这更复杂。
为了获得当前系统范围内的活动麦克风,可以使用 FallbackSource
属性,但用户可能已自定义麦克风以供特定应用程序使用,因此一刀切的解决方案并不适用不存在。
我正在开发一个 golang
软件,旨在使用 pulseaudio 处理(静音和取消静音)Linux 系统中当前启用的麦克风。
我的软件正在尝试使用 DBUs
界面与 pulseaudio 交互。
如果计算机连接了多个麦克风,我需要通过查看 priority
属性 来源找到启用的麦克风。
例如,这是 pacmd list-sources
命令的修剪输出:
4 source(s) available.
index: 0
name: <alsa_output.pci-0000_00_1f.3.analog-stereo.monitor>
...
priority: 1030
...
index: 1
name: <alsa_input.pci-0000_00_1f.3.analog-stereo>
...
priority: 9039
...
index: 2
name: <combined.monitor>
...
priority: 1000
...
* index: 4
name: <alsa_input.usb-046d_0825_6C7C2E60-02.mono-fallback>
...
priority: 9040
...
事实上,在我的系统中,索引为 4 的源是活动源。
我的问题:我找不到从 DBUs
界面中获取 priority
属性 的方法。
根据 documentation,Source
和 Device
对象均未公开名为 Priority
的 属性。
仅有 Priority
字段的对象是 DevicePort
和 CardProfile
。我得到了这些属性的值,但它们的值与 pacmd
.
你知道我是否以及在哪里可以获得优先级值吗?
在撰写本文时,根本不可能获得资源的优先级。
有一个开放的合并请求(由我)添加支持:https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/531
无论如何,这个主题比这更复杂。
为了获得当前系统范围内的活动麦克风,可以使用 FallbackSource
属性,但用户可能已自定义麦克风以供特定应用程序使用,因此一刀切的解决方案并不适用不存在。