런타임에 동일한 ALSA 카드에 있는 두 개의 ALSA 장치 간에 전환하려고 합니다.
>>> [blake@e530 ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: CX20590 Analog [CX20590 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
장치 0은 내 노트북의 온보드 사운드이고 장치 3은 HDMI 출력입니다.
PulseAudio 서버(더 세부적인 런타임 관리 옵션 포함)를 설치한 후 my 에는 장치 0만 나타납니다 pacmd list-sinks
.
flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
state: IDLE
suspend cause:
priority: 9959
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: 20.40 ms
max request: 3 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: 1
configured latency: 20.00 ms; range is 0.50 .. 2000.00 ms
card: 0 <alsa_card.pci-0000_00_1b.0>
module: 6
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "CX20590 Analog"
alsa.id = "CX20590 Analog"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "0"
PulseAudio 또는 기본 ALSA를 사용하여 런타임에 이러한 출력 전환 동작을 달성할 수 있는 방법이 있습니까?
답변1
비슷한 문제가 있습니다. 여러 장치가 나열되어 있지만 aplay -l
PulseAudio는 내 스피커만 나열합니다 pacmd list-sinks
. 헤드폰이 없습니다.
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC898 Analog [ALC898 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC898 Digital [ALC898 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: A20 [Astro A20], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: A20 [Astro A20], device 1: USB Audio [USB Audio #1]
Subdevices: 0/1
Subdevice #0: subdevice #0
이 출력의 경우 다음 명령을 실행하여 헤드폰을 PulseAudio에 추가했습니다. 그런 다음 pasystray를 사용하여 헤드폰을 기본 수신기로 선택하고 음악 앱을 열었습니다. 그 후 모든 것이 잘 작동했습니다. 그런 다음 pactl load-module module-alsa-sink device=hw:1,1
재부팅 후에도 이것이 지속되도록 .load-module module-alsa-sink device=hw:1,1
/etc/pulse/default.pa
답변2
이 문제에는 여러 가지 이유가 있을 수 있지만 제 경우에는 Ubuntu 18.04에서 20.04로 업그레이드한 후에 문제가 발생했습니다. 문제는 내가 대신 pulse
팀 에 나 자신을 통합해야 한다는 것이다 ./etc/group
pulse-access