HDMI 사운드를 출력으로 사용하고 USB 마이크를 입력으로 사용하도록 ALSA를 구성하려고 합니다. 나는 asound.conf
dmix/dsnoop이 없는 직업을 가지고 있습니다:
pcm.usb_mic_raw {
type hw
card Device
device 0
}
pcm.usb_mic_plug {
type plug
slave {
pcm usb_mic_raw
format S16_LE
rate 48000
channels 1
}
}
# Don't use pcm.hdmi because it's taken by the default config files
pcm.hdmi_raw {
type hw
card HDMI
device 9
}
pcm.hdmi_plug {
type plug
slave {
pcm hdmi_raw
format S16_LE
rate 48000
channels 2
}
}
pcm.!default {
type asym;
playback.pcm "hdmi_plug";
capture.pcm "usb_mic_plug";
}
이것은 잘 작동하며 믹싱이 필요하지 않습니다. 한 번에 하나의 프로그램만 사운드를 재생할 수 있습니다.
plug
에서 으로 전환하려고 하면 dmix
다음 오류가 발생합니다.
juice:~ aplay -D hdmi_plug good.wav 1 :(
Playing WAVE 'good.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
[..works..]
juice:~ aplay -D hdmi_dmix good.wav 1 :(
Playing WAVE 'good.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
aplay: set_params:1358: Channels count non available
제가 추가한 부분은 다음과 같습니다.
pcm.hdmi_dmix {
type dmix
ipc_key 200
slave {
pcm hdmi_raw
format S16_LE
rate 48000
period_time 0
period_size 2048
buffer_size 8192
channels 2
}
bindings {
0 0
1 1
}
}
중요한 경우 저는 Arch Linux를 사용하고 있고 pulseaudio와 pulseaudio-alsa를 설치했습니다.
답변1
부분 답변:
pulseaudio를 설치하지 않고 Discord를 열면 장치가 없고 오디오도 표시되지 않습니다.
이는 Discord에 ALSA 드라이버가 없고 Pulseaudio 드라이버만 있을 수 있음을 의미합니다. (그러나 Discord는 비공개 소스이므로 확실히 말할 수는 없습니다.)
pulseaudio가 설치된 Discord를 열면 "alsa"라는 출력 장치가 보입니다.
Discord가 Pulseaudio 장치의 이름을 어떻게 지정했는지 잘 모르겠습니다.
pulseaudio가 내 장치를 감지하지 못하는 것 같아서 ALSA를 구성하고 있습니다.
그런 다음 이를 디버깅해야 합니다. 무엇을 보여줄까요 pactl list short
? 최소한 하나의 ALSA 카드(아마도 그 이상)와 관련 소스 및 싱크가 표시되어야 합니다.
그렇다면: 두 가지를 모두 설치하고 pavucontrol
Discord가 실행되는 동안 실행한 다음 Discord에 대한 올바른 소스와 싱크를 선택하세요.