Firefox에 다른 ALSA 장치를 사용하도록 지시하는 방법은 무엇입니까?


13

온보드 사운드 카드와 연결된 블루투스 헤드셋이 있습니다. 블루투스 장치를 구성했습니다 /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

괜찮습니다. 그러나 브라우저에 블루투스 alsa 장치를 사용하도록 지시하는 방법이 필요합니다.

--alsa-output-device커맨드 라인 옵션을 사용하여 크롬을 시작하는 방법을 찾았습니다 .

chromium --alsa-output-device=bluetooth

파이어 폭스를 시작하는 비슷한 방법이 필요하지만 찾을 수 없습니다.

파이어 폭스가 블루투스 알사 장치를 수정 /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
}

을 사용하여 파이어 폭스를 시작하면 ALSAPCM=bluetooth firefox블루투스 헤드셋에서 소리가 나지 만 파이어 폭스는 100 % CPU (4 코어)에서 실행되고 YouTube 비디오는 10 배 속도로 재생됩니다 (소리가 그에 따라 깨집니다). 없이 파이어 폭스를 시작하면 ALSAPCM=bluetooth모든 것이 정상이며 기본 alsa 장치에서 사운드가 재생됩니다.


와우, 21 개의 골드 배지와 28 명의 담당자 만있는 사용자! 어떻게 했어?
Dmitry Grigoryev

4
@Dmitry Grigoryev-나는 모든 바운티에 소비 ...
마틴 Vegter

답변:


9

파이어 폭스에는 옵션이 없지만 환경 변수를 통해 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

출처 :


첫 번째 방법은 효과가 없습니다. 두 번째 방법을 시도하면 Bluetooth 헤드셋에서 소리가 들리지만 firefox100 % CPU (4 코어)에서 실행되고 YouTube 비디오는 10 배속으로 재생됩니다. 무슨 일이 일어나고 있는지 이해할 수 없습니다. 없이 파이어 폭스를 시작하면 ALSAPCM=bluetooth모든 것이 정상이며 기본 alsa 장치에서 사운드가 재생됩니다.
Martin Vegter

다른 ALSA 환경 변수가 있습니다 (아키 리눅스 위키에 대한 링크 참조). CPU 문제에 대해 정말 놀랐습니다. 그 원인을 알 수 없습니다.
lgeorget

1
CPU로드는 비디오 및 오디오가 10 배속으로 재생 및 스트리밍되고 있기 때문에 발생합니다. 수수께끼가 ALSAPCM=bluetooth비디오 속도를 10x로 변경하는 이유 입니다.
Martin Vegter

@MartinVegter 글쎄, 나는 위키에서 내 게시물에 pcm.! default의 정의를 복사하여 붙여 넣었습니다. 특히 "타입 플러그"와 "슬레이브"부분.
lgeorget

0

이 버그 의 화신처럼 보인다 . 제안 된 몇 가지 해결책이 있지만 인텔 고유의 것으로 보입니다.

pulseaudio를 사용해보십시오. 작동하면 다음과 같이 ALSA 프로그램을 펄스 오디오로 리디렉션 할 수 있습니다 asound.conf.

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

그래도 문제가 해결되지 않으면 rate 44100또는 rate 48000pcm.bluetooth섹션을 추가 하십시오 asound.conf. 아마 ALSA는 그 의미에 올 것이다.

Html5 Youtube Video Speed ​​Controller 도 시도해 볼 수 있지만 도움이 될지 의심됩니다.


감사하지만 pulseaudio를 사용하는 솔루션에는 관심이 없습니다.
Martin Vegter

죄송합니다. 그런 다음 속도 매개 변수를 사용해 볼 수 있습니까?
Dmitry Grigoryev

rate 매개 변수 (44100 및 48000 모두)를 사용하면 다음과 같은 오류가 발생 ALSA lib audio/pcm_bluetooth.c:1449:(bluetooth_parse_config) Invalid type for rate합니다. 블루투스가 rate매개 변수를 지원하지 않는 것 같습니다 .
Martin Vegter

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를 재정의합니다.

더 까다로운 구성은 여기에서 읽을 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.