伝統に応じて、パルスオーディオの使用に問題があります。
X(DWM)を入力してgoogle-chromeを実行した後、youtube.comにアクセスして動画を再生すると、ヘッドフォンが機能せず、音が不均一になります。
speaker-test -c 2 -t wav -D plughw:2,0
結果:再生を開くエラー:-16、デバイスまたはリソースが使用中
Xを再起動すると(ログアウト - >ログイン)、ブラウザのオーディオが魔法のように動作し始めます。
****再生ハードウェアデバイス一覧****
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 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Device [USB Sound Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
何が起こったのかわかりません。以下は私が受け取ったメッセージです。/var/log/メッセージ
初めてログイン
Mar 11 20:07:31 qwerty pulseaudio[1223]: [pulseaudio] alsa-mixer.c: Volume element Speaker has 8 channels. That's too much
Mar 11 20:07:31 qwerty pulseaudio[1223]: [pulseaudio] alsa-mixer.c: Volume element Speaker has 8 channels. That's too much
Mar 11 20:07:31 qwerty pulseaudio[1223]: [pulseaudio] alsa-mixer.c: Volume element Speaker has 8 channels. That's too much
Mar 11 20:07:31 qwerty pulseaudio[1223]: [pulseaudio] alsa-mixer.c: Volume element Speaker has 8 channels. That's too much
Mar 11 20:07:31 qwerty pulseaudio[1223]: [pulseaudio] alsa-mixer.c: Volume element Speaker has 8 channels. That's too much
Mar 11 20:07:44 qwerty org.a11y.Bus[1007]: Activating service name='org.a11y.atspi.Registry'
Mar 11 20:07:44 qwerty org.a11y.Bus[1007]: Successfully activated service 'org.a11y.atspi.Registry'
Mar 11 20:07:44 qwerty org.a11y.atspi.Registry[1288]: SpiRegistry daemon is running with well-known name - org.a11y.atspi.
2回目のログイン
Mar 11 20:08:01 qwerty org.gtk.vfs.Daemon[1007]: A connection to the bus can't be made
Mar 11 20:08:01 qwerty org.gtk.vfs.Daemon[1007]: g_dbus_connection_real_closed: Remote peer vanished with error: Underlyin on an async read (g-io-error-quark, 0). Exiting.
Mar 11 20:08:01 qwerty org.a11y.Bus[1007]: g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOS async read (g-io-error-quark, 0). Exiting.
Mar 11 20:08:01 qwerty org.a11y.atspi.Registry[1288]: g_dbus_connection_real_closed: Remote peer vanished with error: Undebytes on an async read (g-io-error-quark, 0). Exiting.
Mar 11 20:08:02 qwerty org.a11y.Bus[1007]: No protocol specified
Mar 11 20:08:17 qwerty org.a11y.Bus[1349]: Activating service name='org.a11y.atspi.Registry'
Mar 11 20:08:17 qwerty org.a11y.Bus[1349]: Successfully activated service 'org.a11y.atspi.Registry'
Mar 11 20:08:17 qwerty org.a11y.atspi.Registry[1539]: SpiRegistry daemon is running with well-known name - org.a11y.atspi.
Asound.conf
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}
ALSA情報スクリプトの出力v 0.4.64
http://www.alsa-project.org/db/?f=5290b8d86207b2cba3c1e4854fea0399e7fdb9f7
引き続き実行中のすべてのpulseaudioプロセスを終了し、実行すると
speaker-test -c 2 -t wav -D plughw:2,0
オーディオは機能しますが、明らかにブラウザでは機能しません。
今、2つのオプションがあります。 pulseaudioを削除し、環境変数を介してPCM_DEVICEを設定しようとしています。これも痛いです**またはこのpulseaudioの問題を整理しようとしています...私は他の場所で時間を過ごしたほうがいいです。
答え1
問題が突然発生し、インストールしたパッケージが何であるかわからないため、pulseaudioで修正して修正しようとしませんでしたが、設定ファイルで何も変更せず、問題が発生しました。突然現れました。
問題を解決するために私がしたことは、パルスオーディオを完全に削除することでした。
apt-get --purge remove pulseaudio*
rm -r ~/.config/pulse
元のalsaに戻すサウンドプロファイルファイルを作成し、デバイス環境変数への入力を追加しました。
/ETC/ASOUND.CONF
defaults.pcm.!card Device
defaults.ctl.!card Device
defaults.pcm.!device {
@func igetenv
vars [ ALSA_PCM_DEVICE ]
default 0
}
効果がある! (「デバイス」は私のUSBカードの名前です)
複数のオーディオ出力デバイスがあるカードに切り替えるときは、環境変数を設定する必要があります。
コマンド: >ALSA_PCM_CARD=カード ALSA_PCM_DEVICE=デバイス Firefox
ALSA_PCM_DEVICE を asound.conf に追加しないと設定できません。 .confで定義されていますが、明らかに設定するのに十分ではありません/usr/share/alsa/alsa.conf
。
その理由は、PlughwがALSA_PCM_DEVICEを使用し、設定されていない場合はdefaults.pcm.deviceにフォールバックしますが、dmixは(/usr/share/alsa/pcm/dmix.conf)
ALSA_PCM_DEVICEを確認せずにdefaults.pcm.deviceのみを使用するためです。
そのため、ALSA_PCM_DEVICE環境変数を確認するためにdefaults.pcm.!deviceを明示的に再定義する必要があります。
編集する(IRC - ALSA環境変数の要約ダイアログ)
珍しい内蔵デバイス/ドライバがなければ。
Alsaは同様の"default"=plug->dmix->hw再生チェーンを提供する必要があります。
~/.asoundrcはまったく必要なく、すぐに機能するはずです。
デフォルトでは、チェーンはカード0デバイス0で終了します。
または、技術的に言えば、(1)設定されていない場合は、ALSA_PCM_CARDカードの環境のデフォルト値です。 (2) 設定されていない場合の ALSA_CARD env.variable のデフォルト値です。 (3)次の場合、デフォルトは「defaults.pcm.card」alsa変数です。設定されておらず(4)、デフォルトはカード0です。
たとえば、すべてのアプリケーションが「PCH」というサウンドカードを再生できるようにするには、〜/.asoundrc(ユーザーのみ)または/etc/asound.conf(すべてのユーザー)に2行を追加するだけです。
defaults.pcm.!カードPCH
defaults.ctl.!カードPCH
これを無視して「ヘッドセット」というカードを再生したい場合は、アプリケーションを実行できます。または、出力にカード名を表示することもenv ALSA_CARD=Headset some-app-here
できます。技術的にはカード番号()を使用することもできますが、再起動時にカード番号が変わる可能性があるため、通常は名前を使用することをお勧めします。cat /proc/asound/cards
aplay -l
env ALSA_CARD=2 some-app-here
編集する(IRCのサマリー会話 - PulseAudio)
Pulseaudioは仕事を別の方法で行います。中間モジュールを追加する代わりにグローバルpulseaudioデーモンを追加し、そのデーモンは「hw」pcmを直接再生します。他のすべてのアプリケーションはこのデーモンを再生する必要があります。他のアプリケーションの実行中に「hw」を再生できないからです。そのため、「デバイスまたはリソースが使用中です」というメッセージが表示されます。
したがって、一般的なpulseaudio再生チェーンはdefault = "typepulse"モジュール->pulseaudio daemon-> hwです。 pulseaudioで「hw」、「plughw」、または「dmix」を使用しないでください。どちらも一緒に動作しません。代わりにpcm.!default {typepulse}を定義する必要があります(実際、pulseaudioは通常これを自動的に行います)。
pulseaudioがインストールされている場合は、pcm.!default {typepulse}を使用するだけです。ほとんどのディストリビューションでは、pulseaudioはこれを自動的に実行します。 (archlinuxでは別々の「pulseaudio-alsa」パッケージでパッケージ化されており、デフォルトではこのalsa構成のみがあり、他にはありません)