web-dev-qa-db-ja.com

Firefoxに別のALSAデバイスを使用するように指示するにはどうすればよいですか?

オンボードのサウンドカードと、接続されたBluetoothヘッドセットを持っています。 /etc/asound.confでBluetoothデバイスを設定しました:

# cat /etc/asound.conf

pcm.bluetooth {
    type bluetooth
    device 12:34:56:78:9a:bc
    profile "auto"
}

ctl.bluetooth {
    type bluetooth
}

デフォルトでは、すべてのサウンドにオンボードカードが使用されます(明らかに、デフォルトのオンボードカードはasound.confにリストする必要さえありません)。

アプリケーションでbluetooth alsaデバイスを使用する場合は、次のように指定する必要があります。

mplayer -ao alsa:device=bluetooth file.mp3

それで結構です。しかし、ブラウザーにbluetooth alsaデバイスも使用するように指示する方法が必要です。

--alsa-output-deviceコマンドラインオプションを使用してchromiumを起動する方法を見つけました:

chromium --alsa-output-device=bluetooth

同様の方法でFirefoxを起動する必要がありますが、見つかりませんでした。

毎回/etc/asound.confまたは~/.asoundrcを変更する必要なしに、FirefoxにBluetooth alsaデバイスを使用するように指示するにはどうすればよいですか?

更新:

@lgeorgetのアドバイスに従い、/etc/asound.confは次のようになります。

pcm.!default {
type plug
slave.pcm {
        @func getenv
        vars [ ALSAPCM ]
        default "hw:0,0"
    }
}

pcm.bluetooth {
    type bluetooth
    device 12:34:56:78:9a:bc
    profile "auto"
}

ctl.bluetooth {
    type bluetooth
}

ALSAPCM=bluetooth firefoxを使用してFirefoxを起動すると、Bluetoothヘッドセットで音が聞こえますが、Firefoxは100%CPU(4コア)で動作し、YouTubeビデオは10倍の速度で再生されます(それに応じて音が歪む) 。何が起こっているのか理解できません。ALSAPCM=bluetoothなしでFirefoxを起動すると、すべて問題なく、デフォルトのalsaデバイスでサウンドが再生されます。

13
Martin Vegter

どうやらfirefoxのオプションはありませんが、環境変数を介してALSA出力を操作できます。

たとえば、次のことを試してください。

ALSA_PCM_CARD=bluetooth firefox

または、これが機能しない場合は、.asoundrcを少しスクリプト化してみてください

pcm.!default {
type plug
slave.pcm {
        @func getenv
        vars [ ALSAPCM ]
        default "hw:hdmi"
    }
}

(「hw:hdmi」を通常のpcmに置き換えてください)。次に、プログラムで特定のPCMを使用する場合は、次を使用します。

ALSAPCM=bluetooth firefox

出典:

9
lgeorget

このバグ の化身のようです。 ソリューション がいくつか提案されていますが、それらはIntel固有のもののようです。

PulseAudioを使用してみてください。動作する場合は、次のasound.confを使用して、ALSAプログラムをpulseaudioにリダイレクトできます。

pcm.Pulse {
    type Pulse
}
ctl.Pulse {
    type Pulse
}
pcm.!default {
    type Pulse
}
ctl.!default {
    type Pulse
}

それでも解決しない場合は、rate 44100rate 48000セクションにpcm.bluetoothまたはasound.confを追加してみてください。おそらく、ALSAはその意味を理解するでしょう。

Html5 Youtube Video Speed Controller を試してみることもできますが、役に立たないと思います。

0

備考:Firefoxの現在のバージョンでは、不明な理由により〜/ .asound.confを無視しているようです。

Pulseaudioを使用しない場合(ほとんどのディストリビューションがインストールするにもかかわらず、主にalsa上の不要なレイヤーです)、ほとんどの場合、デフォルトのオーディオ出力を別のものに選択するだけで済みます。

これは次のようにして行うことができます.asound.conf あなたの家で:

pcm.!default {
    type hw
    card N
}

ctl.!default {
    type hw           
    card N
}

Nを小さな整数に置き換え、0は最初のサウンドカード(デフォルト)、1は2番目のサウンドカード、というようになります。

!!defaultはここで否定ではありません!これは、以前に(システム全体で定義された)グローバルalsa.confをオーバーライドします。

よりトリッキーな設定を読むことができます ここ