2020-03-30 遇到的一点小问题

最近需要获取比较详细的USB Audio信息,网上找了下,很多推荐pacmd list-sinks命令。
先使用
pacman -S pulseaudio
命令安装PulseAudio,再使用pacmd list-sinks
命令获取信息,不过失败了。
[root@archlinux ~]# pacmd list-sinks
No PulseAudio daemon running, or not running as session daemon.
看了下PulseAudio官方文档,第一步需要启动服务。参考pulseaudio的man页面,执行pulseaudio --start
指令后再获取。
这次没出错,不过也没获取到想要的信息。
[root@archlinux ~]# pulseaudio --start
[root@archlinux ~]# pacmd list-sinks
1 sink(s) available.
* index: 0
name: <auto_null>
driver: <module-null-sink.c>
flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 1000
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max request: 344 KiB
max rewind: 344 KiB
monitor source: 0
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
module: 12
properties:
device.description = "Dummy Output"
device.class = "abstract"
device.icon_name = "audio-card"
再翻了翻文档,发现还需要安装alsa-utils应用。

执行
pacman -S alsa-utils
指令安装后,再重试。可以了。。。
[root@archlinux ~]# pulseaudio --kill
[root@archlinux ~]# pulseaudio --start
[root@archlinux ~]# pacmd list-sinks
1 sink(s) available.
* index: 5
name: <alsa_output.usb-AudioQuest_AudioQuest_DragonFly_Red_v1.0_AQDFRD0100105709-01.analog-stereo>
driver: <module-alsa-card.c>
flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 9049
volume: front-left: 30419 / 46% / -20.00 dB, front-right: 30419 / 46% / -20.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max request: 0 KiB
max rewind: 0 KiB
monitor source: 5
sample spec: s24le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
card: 4 <alsa_card.usb-AudioQuest_AudioQuest_DragonFly_Red_v1.0_AQDFRD0100105709-01>
module: 27
properties:
alsa.resolution_bits = "24"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "USB Audio"
alsa.id = "USB Audio"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "1"
alsa.card_name = "AudioQuest DragonFly Red v1.0"
alsa.long_card_name = "AudioQuest AudioQuest DragonFly Red v1.0 at usb-0000:00:14.0-2.2, full speed"
alsa.driver_name = "snd_usb_audio"
device.bus_path = "pci-0000:00:14.0-usb-0:2.2:2.1"
sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:2.1/sound/card1"
udev.id = "usb-AudioQuest_AudioQuest_DragonFly_Red_v1.0_AQDFRD0100105709-01"
device.bus = "usb"
device.vendor.id = "21b4"
device.vendor.name = "AudioQuest"
device.product.id = "0082"
device.product.name = "AudioQuest DragonFly Red v1.0"
device.serial = "AudioQuest_AudioQuest_DragonFly_Red_v1.0_AQDFRD0100105709"
device.string = "front:1"
device.buffering.buffer_size = "529200"
device.buffering.fragment_size = "264600"
device.access_mode = "mmap+timer"
device.profile.name = "analog-stereo"
device.profile.description = "Analog Stereo"
device.description = "AudioQuest DragonFly Red v1.0 Analog Stereo"
alsa.mixer_name = "USB Mixer"
alsa.components = "USB21b4:0082"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-usb"
ports:
analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
properties:
active port: <analog-output>
使用hwinfo应用也能获取不少信息,就是解析挺费劲的。
因为需求只是获取部分信息,特意安装pulseaudio没必要,所以最后通过读取udev和asound相关文件也都获取到了。
记录一下。
[root@archlinux ~]# pacmd --help
pacmd exit
pacmd help
pacmd list-(modules|sinks|sources|clients|cards|samples)
pacmd list-(sink-inputs|source-outputs)
pacmd stat
pacmd info
pacmd load-module NAME [ARGS ...]
pacmd unload-module NAME|#N
pacmd describe-module NAME
pacmd set-(sink|source)-volume NAME|#N VOLUME
pacmd set-(sink-input|source-output)-volume #N VOLUME
pacmd set-(sink|source)-mute NAME|#N 1|0
pacmd set-(sink-input|source-output)-mute #N 1|0
pacmd update-(sink|source)-proplist NAME|#N KEY=VALUE
pacmd update-(sink-input|source-output)-proplist #N KEY=VALUE
pacmd set-default-(sink|source) NAME|#N
pacmd kill-(client|sink-input|source-output) #N
pacmd play-sample NAME SINK|#N
pacmd remove-sample NAME
pacmd load-sample NAME FILENAME
pacmd load-sample-lazy NAME FILENAME
pacmd load-sample-dir-lazy PATHNAME
pacmd play-file FILENAME SINK|#N
pacmd dump
pacmd move-(sink-input|source-output) #N SINK|SOURCE
pacmd suspend-(sink|source) NAME|#N 1|0
pacmd suspend 1|0
pacmd set-card-profile CARD PROFILE
pacmd set-(sink|source)-port NAME|#N PORT
pacmd set-port-latency-offset CARD-NAME|CARD-#N PORT OFFSET
pacmd set-log-target TARGET
pacmd set-log-level NUMERIC-LEVEL
pacmd set-log-meta 1|0
pacmd set-log-time 1|0
pacmd set-log-backtrace FRAMES
-h, --help Show this help
--version Show version
When no command is given pacmd starts in the interactive mode.
网友评论