여러 응용 프로그램이 열려 있으면 ALSA가 작동하지 않습니다.

여러 응용 프로그램이 열려 있으면 ALSA가 작동하지 않습니다.

저는 사운드 관련 Python 프로그램을 작성 중이므로 PortAudio 라이브러리를 사용하는 SoundDevice Python 모듈을 사용하고 있습니다. 저는 아치 리눅스와 심층 데스크탑을 사용하고 있습니다.

컴퓨터를 켜고 사용 가능한 장치를 인쇄하면 다음과 같은 결과가 나타납니다.

   0 HDA Intel PCH: ALC887-VD Analog (hw:0,0), ALSA (2 in, 2 out)
   1 HDA Intel PCH: ALC887-VD Digital (hw:0,1), ALSA (0 in, 2 out)
   2 HDA Intel PCH: ALC887-VD Alt Analog (hw:0,2), ALSA (2 in, 0 out)
   3 HDA ATI HDMI: 0 (hw:1,3), ALSA (0 in, 8 out)
   4 sysdefault, ALSA (128 in, 128 out)
   5 front, ALSA (0 in, 2 out)
   6 surround40, ALSA (0 in, 2 out)
   7 surround51, ALSA (0 in, 2 out)
   8 surround71, ALSA (0 in, 2 out)
   9 iec958, ALSA (0 in, 2 out)
  10 spdif, ALSA (0 in, 2 out)
  11 pulse, ALSA (32 in, 32 out)
  12 dmixed, ALSA (0 in, 2 out)
  13 dsnooped, ALSA (2 in, 0 out)
  14 duplex, ALSA (2 in, 2 out)
  15 dmix, ALSA (0 in, 2 out)
* 16 default, ALSA (128 in, 128 out)

ALSA(입력 128, 출력 128)를 사용하고 있다고 나옵니다. 이제 애플리케이션(Chromium이라고 가정해 보겠습니다)을 열고 음악을 재생하고 계속해서 인터넷을 탐색하겠습니다. 이제 사용 가능한 장치를 인쇄하면 다음과 같은 결과가 나타납니다.

   0 HDA Intel PCH: ALC887-VD Analog (hw:0,0), ALSA (2 in, 0 out)
<  1 HDA Intel PCH: ALC887-VD Digital (hw:0,1), ALSA (0 in, 2 out)
   2 HDA Intel PCH: ALC887-VD Alt Analog (hw:0,2), ALSA (2 in, 0 out)
   3 HDA ATI HDMI: 0 (hw:1,3), ALSA (0 in, 8 out)
   4 sysdefault, ALSA (128 in, 0 out)
   5 iec958, ALSA (0 in, 2 out)
   6 spdif, ALSA (0 in, 2 out)
   7 pulse, ALSA (32 in, 32 out)
   8 dsnooped, ALSA (2 in, 0 out)
   9 duplex, ALSA (2 in, 0 out)
> 10 default, ALSA (128 in, 0 out)

이는 출력에 Intel을 사용하고 입력에 ALSA(128인치, 0)를 사용하고 있음을 알려줍니다. 이전과 같은 ALSA 입력 및 출력이 없는 이유는 무엇입니까?

이는 Audacity를 포함하여 사운드를 사용하는 모든 응용 프로그램에서 발생합니다.

현재는 대안으로 pluse를 사용하고 있는데 ALSA가 더 좋다고 해서 동시에 여러개의 앱을 열어두어도 그걸 사용하고 싶습니다.

편집하다

구성을 편집한 후의 목록은 다음과 같습니다.

>  0 HDA Intel PCH: ALC887-VD Analog (hw:0,0), ALSA (2 in, 2 out)
   1 HDA Intel PCH: ALC887-VD Digital (hw:0,1), ALSA (0 in, 2 out)
   2 HDA Intel PCH: ALC887-VD Alt Analog (hw:0,2), ALSA (2 in, 0 out)
   3 HDA ATI HDMI: 0 (hw:1,3), ALSA (0 in, 8 out)
   4 sysdefault, ALSA (128 in, 128 out)
   5 front, ALSA (0 in, 2 out)
   6 surround40, ALSA (0 in, 2 out)
   7 surround51, ALSA (0 in, 2 out)
   8 surround71, ALSA (0 in, 2 out)
   9 iec958, ALSA (0 in, 2 out)
  10 spdif, ALSA (0 in, 2 out)
  11 pulse, ALSA (32 in, 32 out)
  12 dmix, ALSA (0 in, 2 out)
< 13 default, ALSA (0 in, 128 out)

답변1

기본 장치 대신 ALSA 장치 로의 출력이 필요합니다 dmix. 여러 스트림을 혼합하여 사운드 카드로 출력할 수 있습니다. 보시다시피 하드웨어 믹싱을 지원하지 않는 사운드 장치에서는 자동으로 설정되며 시스템에는 이미 설정되어 있습니다.

다음에 대한 자세한 정보를 찾을 수 있습니다.알사 위키.

dmix다음 구성을 사용하여 기본값으로 구성 할 수 있습니다 .

pcm.!default {
    type plug
    slave.pcm "dmix"
}

ALSA를 사용하려면 모든 애플리케이션을 구성해야 합니다. 또한 이는 dmix출력 장치일 뿐이므로 여러 입력을 관리하려면 dsnoopALSA 위키에 자세한 지침이 나와 있습니다.구성 예두 경우 모두 특정 설정(특히 기본 기본 하드웨어 장치)에 맞게 조정할 수 있습니다.

관련 정보