web-dev-qa-db-ja.com

複数のアプリケーションを開いた場合、ALSAは機能しません

私はいくつかのpythonサウンドに関連するプログラムを書いているので、SoundDevice python PortAudioライブラリを使用するモジュールを使用しました。私はArch Linuxのディープデスクトップを使用しています。

コンピューターを開いて利用可能なデバイスを印刷したところ、次のようになります。

   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)
4
Omar Emara

デフォルトのデバイスではなく、dmixALSAデバイスに出力する必要があります。複数のストリームを混合してサウンドカードに出力できます。ハードウェアミキシングをサポートしていないサウンドデバイスに自動的に設定されます。ご覧のとおり、システムに設定されています。

詳細については、 ALSA wiki をご覧ください。

dmixをデフォルトとして構成するには、次のような構成を使用します。

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

ALSAを使用するようにすべてのアプリケーションを構成する必要があります。 dmixは単なる出力デバイスであることに注意してください。複数の入力を管理する場合は、dsnoopを使用する必要があります。 ALSA wikiには、特定の設定(特に、デフォルトの基盤となるハードウェアデバイス)に適応できる両方の詳細 構成例 があります。

5
Stephen Kitt