GNU/Linux >> Znalost Linux >  >> Linux

Jak říct Firefoxu, aby používal jiné zařízení Alsa?

Mám zabudovanou zvukovou kartu a také připojený bluetooth headset. Nakonfiguroval jsem zařízení bluetooth v /etc/asound.conf :

# cat /etc/asound.conf

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

ctl.bluetooth {
    type bluetooth
}

Ve výchozím nastavení se pro veškerý zvuk používá integrovaná karta (výchozí karta na desce zjevně ani nemusí být uvedena v souboru asound.conf)

Když chci, aby aplikace používala moje zařízení bluetooth alsa, musím to specifikovat, například:

mplayer -ao alsa:device=bluetooth file.mp3

To je pro mě v pořádku. Ale potřebuji způsob, jak říct svým prohlížečům, aby také používaly zařízení bluetooth alsa.

Našel jsem způsob, jak spustit chromium pomocí --alsa-output-device možnost příkazového řádku:

chromium --alsa-output-device=bluetooth

Potřebuji podobný způsob, jak spustit firefox, ale žádný jsem nenašel.

Jak mohu přikázat firefoxu, aby používal mé zařízení bluetooth alsa, aniž bych musel upravovat /etc/asound.conf nebo ~/.asoundrc pokaždé?

AKTUALIZACE:

Postupoval jsem podle rady @lgeorget a mého /etc/asound.conf nyní vypadá takto:

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
}

Když spustím firefox pomocí ALSAPCM=bluetooth firefox , do bluetooth headsetu mám zvuk, ale firefox běží na 100% CPU (na mých 4 jádrech) a video na youtube se přehrává 10x rychlostí (a zvuk je odpovídajícím způsobem (zkomolený). Nechápu, co se děje. Kdy Spustím firefox bez ALSAPCM=bluetooth , vše je v pořádku a zvuk hraje na výchozím alsa zařízení.

Přijatá odpověď:

Zřejmě neexistuje žádná možnost pro firefox, ale můžete manipulovat s výstupem ALSA prostřednictvím proměnných prostředí.

Zkuste například:

ALSA_PCM_CARD=bluetooth firefox

Případně, pokud to nefunguje, zkuste trochu naskriptovat váš .asoundrc

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

(nahraďte „hw:hdmi“ vaším normálním PCM). Pokud pak chcete, aby program používal konkrétní PCM, použijte:

ALSAPCM=bluetooth firefox

Zdroje:

  • Archlinux-wiki
  • Stackoverflow.com

Linux
  1. Jak používat BusyBox na Linuxu

  2. Jak používat Nginx k přesměrování

  3. Jak zjistit, zda se používá připojení ssh ControlMaster

  1. Jak používám cron v Linuxu

  2. Nízká úroveň Bluetooth Utility?

  3. Jak zjistit, který sériový port se používá?

  1. Jak používat Su Command v Linuxu

  2. Co znamenají zařízení ALSA jako hw:0,0? Jak zjistím, který použít?

  3. Jak zjistím, který proces způsobuje, že se kswapd používá?