diary/Kojima

・Plamo-6.1でALSA

最近組んだHaswell世代のCore i3マシン、ふと気づくとニコニコ動画で音が出ない。

YouTubeだと問題ないし、smplayerとかamarokといったメディアプレイヤーも問題ないんで、なぜだろう、、としばし悩んだけれど、結論としてはsmplayerやFirefox、amarokといったアプリはpulseaudioに対応しているけれど、ニコニコ動画が依存しているFlashplayerのLinux版(libflash.so)はALSAのみの対応で、直截ALSAに出力するデータが再生ができてない模様。

あれこれ調べたところ、オンボードなサウンドチップを操作するsnd-hda-intelがデフォルトではHDMIの側を向いていて、pulse audioならば2番目のアナログオーディオの方も使えるものの、ALSA直截だと(デフォルト以外の)アナログオーディオは操作できないのが原因らしい。

snd-hda-intelモジュールはオプション指定でデフォルトに使う出力先を指定できるので、/etc/modprobe.d/plamo.default にこんな設定を追加してやればALSAからも直截出力できるようになった。

 options snd-hda-intel id=PCH index=1

この指定を追加したら snd-hda-intel モジュールがALSAからの出力も音声化できるようになったものの、ALSAを使っている時はALSAのみでpulse audioの出力は受けつけず、pulse audio を使っている時はALSAの出力はブロックされる。

まぁ、厩戸皇子でもないから、音声出力はどれか一つのアプリだけ、でも構わないんだけれど、以前は複数の入力を同時に再生できてたので、何とかならないかなぁ、、と調べてみたら、~/.asoundrc にこういう設定を追加すればいいらしい。

pcm.dmixer {
    type dmix
    ipc_key 1024
    ipc_key_add_uid 0
    ipc_perm 0660 
}
pcm.dsp {
    type plug
    slave.pcm "dmix"
}

設定の意味は理解できてないんだけれど、dmixというのはALSAが提供しているDirect Mixing用モジュールで、これを使えば複数のオーディオ入力をソフトウェア的にミキシングできるらしい。

とりあえず、これらの設定を追加することで、ニコニコ動画のようなALSAの出力と、smplayerのようなpulse audioの出力を同時に再生できるようになったので、参考のために晒しておく。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:43