web-dev-qa-db-ja.com

Manjaro / Arch + KDE:スピーカー-テストは機能しますが、アプリケーションに音が出ません(外部USB-サウンドカード)

コンピューターのUSBポートにサウンドカードが接続されたCinebarOneスピーカーシステムがあります。 KDEのオーディオ設定で「フロント右/フロント左」スピーカーテストボタンを押すと、問題なく認識されます。フレンドリーな女性の声が聞こえ、動作していることがわかります。ターミナルからのspeaker-testも機能します。さまざまな構成ファイル(最後に説明)に対してすでに行った編集を除いて、これはカーネル4.19.28-1を使用したManjaro 18.0.2(更新のインストール)のクリーンでフレッシュなインストールです。

ただし、他のすべてのアプリケーションは音を出さず、別のアプリケーション(vlcなど)が同時に実行されると、スピーカーテストは無音になります。ラップトップとまったく同じように構成しましたが、問題なく動作します。

KDE-Audio-Configのスクリーンショット-Advanced-Tab
KDE-Audio-Configのスクリーンショット-アプリケーション-タブ
KDE-Audio-Config-Devices-Tabのスクリーンショット

最初に、間違ったソースとシンクがpactl infoで使用されているかどうかを確認しました。

Server String: unix:/run/user/1000/Pulse/native
Library Protocol Version: 32
Server Protocol Version: 32
Is Local: yes
Client Index: 82
Tile Size: 65472
User Name: takiro
Host Name: takiro-desktop
Server Name: pulseaudio
Server Version: 12.2
Default Sample Specification: s16le 2ch 44100Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.usb-2cc2_Teufel_Cinebar_One_ABCDEF0123456789-00.iec958-stereo
Default Source: alsa_output.usb-2cc2_Teufel_Cinebar_One_ABCDEF0123456789-00.iec958-stereo.monitor
Cookie: 5ca7:421f

Default SinkDefault Sourceは正しいですが、私が知る限り、他の設定も正しいです。

次に、アプリケーションが間違ったシンクを使用している可能性があるか、ミュートまたはコルクされている可能性があると考えました。アプリケーション(VLC)の実行中にpactl list sink-inputsでこれを確認しました

Sink Input #94
        Driver: protocol-native.c
        Owner Module: 13
        Client: 79
        Sink: 24
        Sample Specification: float32le 2ch 44100Hz
        Channel Map: front-left,front-right
        Format: pcm, format.rate = "44100"  format.sample_format = "\"float32le\""  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
        Corked: no
        Mute: no
        Volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
                balance 0,00
        Buffer Latency: 339659 usec
        Sink Latency: 48859 usec
        Resample method: copy
        Properties:
                media.role = "video"
                media.name = "audio stream"
                application.name = "VLC media player (LibVLC 3.0.6)"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "32"
                application.id = "org.VideoLAN.VLC"
                application.version = "3.0.6"
                application.icon_name = "vlc"
                application.language = "en_US.UTF-8"
                application.process.id = "4215"
                application.process.user = "takiro"
                application.process.Host = "takiro-desktop"
                application.process.binary = "vlc"
                window.x11.display = ":0"
                application.process.machine_id = "34b82a1eb1ad4ab48c8d7c2b845005f6"
                application.process.session_id = "2"
                module-stream-restore.id = "sink-input-by-media-role:video"

ご覧のとおり、ミュートもコルクもされていません。 sink: 24が実際に何であるかを再確認し、pactl list sinksを実行しました

Sink #24
        State: RUNNING
        Name: alsa_output.usb-2cc2_Teufel_Cinebar_One_ABCDEF0123456789-00.iec958-stereo
        Description: Teufel Cinebar One Digital Stereo (IEC958)
        Driver: module-alsa-card.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 32
        Mute: no
        Volume: front-left: 65506 / 100% / -0,01 dB,   front-right: 65506 / 100% / -0,01 dB
                balance 0,00
        Base Volume: 65536 / 100% / 0,00 dB
        Monitor Source: alsa_output.usb-2cc2_Teufel_Cinebar_One_ABCDEF0123456789-00.iec958-stereo.monitor
        Latency: 48456 usec, configured 40000 usec
        Flags: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS 
        Properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "USB Audio"
                alsa.id = "USB Audio"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "1"
                alsa.card_name = "Teufel Cinebar One"
                alsa.long_card_name = "Teufel Cinebar One at usb-0000:00:14.0-8, full speed"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:00:14.0-usb-0:8:1.0"
                sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb2/2-8/2-8:1.0/sound/card1"
                udev.id = "usb-2cc2_Teufel_Cinebar_One_ABCDEF0123456789-00"
                device.bus = "usb"
                device.vendor.id = "2cc2"
                device.vendor.name = "2cc2"
                device.product.id = "0005"
                device.product.name = "Teufel Cinebar One"
                device.serial = "2cc2_Teufel_Cinebar_One_ABCDEF0123456789"
                device.string = "iec958:1"
                device.buffering.buffer_size = "352800"
                device.buffering.fragment_size = "176400"
                device.access_mode = "mmap+timer"
                device.profile.name = "iec958-stereo"
                device.profile.description = "Digital Stereo (IEC958)"
                device.description = "Teufel Cinebar One Digital Stereo (IEC958)"
                alsa.mixer_name = "USB Mixer"
                alsa.components = "USB2cc2:0005"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-usb"
        Ports:
                iec958-stereo-output: Digital Output (S/PDIF) (priority: 0)
        Active Port: iec958-stereo-output
        Formats:
                pcm

正しいデバイスとシンク。

pactl list sourcesもヒントをくれませんでした。

Source #24
        State: IDLE
        Name: alsa_output.usb-2cc2_Teufel_Cinebar_One_ABCDEF0123456789-00.iec958-stereo.monitor
        Description: Monitor of Teufel Cinebar One Digital Stereo (IEC958)
        Driver: module-alsa-card.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 32
        Mute: no
        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
        Monitor of Sink: alsa_output.usb-2cc2_Teufel_Cinebar_One_ABCDEF0123456789-00.iec958-stereo
        Latency: 0 usec, configured 2000000 usec
        Flags: DECIBEL_VOLUME LATENCY 
        Properties:
                device.description = "Monitor of Teufel Cinebar One Digital Stereo (IEC958)"
                device.class = "monitor"
                alsa.card = "1"
                alsa.card_name = "Teufel Cinebar One"
                alsa.long_card_name = "Teufel Cinebar One at usb-0000:00:14.0-8, full speed"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:00:14.0-usb-0:8:1.0"
                sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb2/2-8/2-8:1.0/sound/card1"
                udev.id = "usb-2cc2_Teufel_Cinebar_One_ABCDEF0123456789-00"
                device.bus = "usb"
                device.vendor.id = "2cc2"
                device.vendor.name = "2cc2"
                device.product.id = "0005"
                device.product.name = "Teufel Cinebar One"
                device.serial = "2cc2_Teufel_Cinebar_One_ABCDEF0123456789"
                device.string = "1"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-usb"
        Formats:
                pcm

alsamixerも、異常なチャネルなどを表示しません。 アルサミキサーのスクリーンショット

奇妙なことに、KDE-Plasmaで最新のManjaroを実行するlaoptopでサウンドカードとスピーカーをテストしましたが、問題なく動作します。そのため、デスクトップ(以前はXFCEでManjaroを使用していた)を再インストールし、今でも機能することを望んでいましたが、機能しないと思います。

私はすでにいくつかの設定をチェックしましたが、私が知る限り、それらはまったく同じように設定されています。そのため、ミュートされておらず、音量は100%ですが、それでも音は出ません。

結局、新しいシステムのインストールは役に立ちました 私の「デバイスがビジーです」の問題で 、私はまだデスクトップコンピュータで音が出ません。

私はインターネット上で同様の問題を抱えた投稿をたくさん見つけましたが、通常はミュートされたチャネルまたはライブラリがないため、解決策を試しましたが、うまくいきませんでした。 https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecturehttps://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting もチェックしました可能な解決策について。

編集
その間に試したが成功しなかった:

  • ログでエラーをチェックし、No object for name "alsa_output.usb-2cc2_Teufel_Cinebar_One_ABCDEF0123456789-00.iec958-stereo.monitor"を見つけました。これに対する解決策を検索しても、私がまだ試していなかった結果は得られませんでした。
  • Nvidia Audioが干渉するのを防ぐために、Kernel-Module snd_hda_intelをブラックリストに登録しました。 USBサウンドカードがシステムで認識される唯一のサウンドカードになりましたが、変更はありません。
  • set-card-profile alsa_card.usb-2cc2_Teufel_Cinebar_One_ABCDEF0123456789-00 output:iec958-stereoの末尾にset-sink-port alsa_output.usb-2cc2_Teufel_Cinebar_One_ABCDEF0123456789-00.iec958-stereo iec958-stereo-output/etc/Pulse/default.paを追加しました。問題は残っています。
  • load-module module-detectload-module module-role-corkload-module module-switch-on-port-availableをコメントアウトしました
  • インストールしてapulse <application>を試しました。まだ音が出ない。
  • fuser -v /dev/snd/*を実行して、問題のあるアプリケーションをチェックしました

    /dev/snd/controlC0:  takiro     3727 F.... pulseaudio  
    /dev/snd/pcmC0D0p:   takiro     3727 F...m pulseaudio
    
  • ユーザーをaudioグループに追加しました。
  • ~/.config/Pulse/のすべてを削除し、pulseaudioを再起動しました

これまでのところ変更のみ:VLC、Firefox、およびその他のアプリケーションはサウンドを生成しますが、speaker-testが端末から同時に実行されている場合に限ります。残念ながら、それがいつ起こったのか正確にはわかりません。

2
Takiro

ソリューションを作成しているときに、一部のアプリケーション(Telegramなど)とビュービデオが実際にサウンドを生成していることに気付きました。さらに調査したところ、コーデックが欠落していることが原因であると最初に推測し、すべての作業メディアファイルがモノラルまたはユニファイドステレオチャネルを嫌っていることに気づきました。さらに多くのファイルをチェックしたところ、これは実際には問題ではないことに気づきました。動作していないすべてのファイルに共通していたのは、サンプルレートでした。サンプルレートが48000のすべてのものが、期待どおりのサウンドを生成しました。

この新しい情報を使用して、/etc/Pulse/daemon.confを編集し、行を変更しました

; default-sample-format = s16le
default-sample-rate = 48000
; alternate-sample-rate = 48000
default-sample-channels = 2
default-channel-map = front-left,front-right

default-sample-rateにコメントし、サンプルレートを48000に変更しました。念のため、default-sample-channelsdefault-channel-mapにもコメントしましたが、サウンドカードですでにサポートされていたため、値はそのままにしました。

変更を保存した後、systemctl --user restart pulseaudioでpulseaudioを再起動すると、動作しました。私の知る限り、私がテストしたすべてのアプリケーションは現在健全です。

0
Takiro