Як сказати Firefox використовувати інший пристрій ALSA?


13

У мене є бортова звукова карта, а також підключена Bluetooth-гарнітура. Я налаштував Bluetooth-пристрій у /etc/asound.conf:

# 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 --alsa-output-device=bluetooth

Мені потрібен подібний спосіб запустити firefox, але я не зміг його знайти.

Як я можу дозволити Firefox використовувати свій Bluetooth-пристрій Alsa, не потребуючи змін /etc/asound.confабо ~/.asoundrcщоразу?

ОНОВЛЕННЯ:

Я дотримувався поради @ 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
}

Коли я запускаю Firefox ALSAPCM=bluetooth firefox, я отримую звук у своїй гарнітурі Bluetooth, але firefox працює зі 100% процесором (на моїх 4 ядрах), а відео YouTube відтворюється зі швидкістю 10 разів (а звук відповідно (зібраний). Я не зрозуміти, що відбувається. Коли я запускаю Firefox без цього ALSAPCM=bluetooth, все гаразд, і звук відтворюється на пристрої alsa за замовчуванням.


Нічого собі, користувач з 21 золотими значками і лише 28 повторень! Як ти це зробив?
Дмитро Григор’єв

4
@Dmitry Grigoryev - Я витрачаю все на щедрості ...
Мартін Вегтер

Відповіді:


9

Мабуть, для Firefox немає варіантів, але ви можете маніпулювати висновком ALSA через змінні середовища.

Спробуйте, наприклад:

ALSA_PCM_CARD=bluetooth firefox

Крім того, якщо це не спрацює, спробуйте трохи написати свій .asoundrc

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

(замініть "hw: hdmi" на ваш звичайний pcm). Потім, якщо ви хочете, щоб програма використовувала певний ПКМ, використовуйте:

ALSAPCM=bluetooth firefox

Джерела:


перший підхід не працює. Коли я спробую другий підхід, я отримую звук у своїй гарнітурі Bluetooth, але firefoxпрацює зі 100% процесором (на моїх 4 ядрах), а відео YouTube відтворюється зі швидкістю 10 разів. Я не розумію, що відбувається. Коли я запускаю Firefox без цього ALSAPCM=bluetooth, все гаразд, і звук відтворюється на пристрої alsa за замовчуванням.
Мартін Вегтер

Є різні змінні середовища ALSA (див. Посилання на вікі Archlinux), можливо, ще одна спрацює. Я дуже здивований проблемою процесора, не бачу, що це може спричинити.
lgeorget

1
завантаження процесора, швидше за все, спричинене тим, що відео та аудіо відтворюються та передаються з поточною швидкістю 10 разів. Таємниця полягає в тому, чому ALSAPCM=bluetoothзмінюється швидкість відео на 10 разів.
Мартін Вегтер

@MartinVegter Добре, що я копіюю вставку визначення pcm.! За замовчуванням у своєму дописі з вікі, воно може не підходити для вашого конкретного випадку. Особливо "тип штепсельної вилки" та "рабська" частина.
lgeorget

0

Це схоже на втілення цього клопа . Запропоновано кілька рішень , але вони здаються специфічними для Intel.

Спробуйте використовувати pulseaudio. Якщо це працює, ви можете перенаправити ваші програми ALSA на pulseaudio за допомогою наступного asound.conf:

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

Якщо це не допомагає, спробуйте додати rate 44100або rate 48000до pcm.bluetoothрозділу свого asound.conf. Можливо, тоді ALSA прийде до тями.

Ви також можете спробувати Html5 Youtube Video Controller швидкості , хоча я сумніваюся, що це допоможе.


дякую, але мене не цікавлять рішення, що використовують pulseaudio.
Мартін Вегтер

Вибачте. Чи можете ви спробувати цей параметр швидкості?
Дмитро Григор’єв

з параметром швидкості (як з 44100 і 48000), я отримую наступне повідомлення про помилку: ALSA lib audio/pcm_bluetooth.c:1449:(bluetooth_parse_config) Invalid type for rate. Схоже, Bluetooth не підтримує rateпараметр.
Мартін Вегтер

0

Зауваження: Поточні версії Firefox начебто ігнорують ~ / .asound.conf з невідомих причин.

Якщо ви не використовуєте pulseaudio (це головним чином непотрібний шар над alsa, незважаючи на те, що більшість дистрибутивів встановлює його), то в більшості випадків вам потрібно лише вибрати аудіо вихід за замовчуванням на інший.

Це можна зробити за допомогою наступного .asound.confу вашому будинку:

pcm.!default {
    type hw
    card N
}

ctl.!default {
    type hw           
    card N
}

Замініть Nневелике ціле число, 0 для вашої першої звукової карти (це за замовчуванням), 1 для вашої другої тощо.

!У !defaultне заперечення тут! Це є передумовою раніше (всесистемно визначеної) глобальної alsa.conf.

Більш складні конфігурації можна прочитати тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.