我加载了一个PulseAudio
module-null-sink
,当我将其设置为系统默认输出设备时,可以ALSA
snd_pcm_open(&pcm_handle, "default", SND_PCM_PLAYBACK, 0)
成功打开它。现在我需要直接打开虚拟接收器,而不是将其设置为默认,这意味着我必须找到该接收器的正确设备名称。有人提到asoundrc
或asound.conf
文件可能包含所有可用的设备ALSA
,但这些文件在我的 ubuntu 上不存在。我还尝试aplay -L
列出所有设备,结果发现只有硬件设备,没有虚拟接收器。pacmd list-sinks
提供有关虚拟接收器的信息,例如:
* index: 4
name:<Virtual_Sink_2>
driver:<module-null-sink.c>
flags: DECIBLE_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
priority: 1000
......
used by: 0
linked by: 1
....
但 <Virtual_Sink_2> 不起作用,module-null-sink
ALSA 打开的正确名称是什么?谢谢。
答案1
尝试一下pulse:DEVICE=Virtual_Sink_2
。只要你的发行版中的 alsa-plugins 包版本(1.2.1 或更高版本,未经篡改)包含以下内容,它就应该可以工作:这例如/usr/share/alsa/alsa.conf.d/50-pulseaudio.conf
。