Bluetooth A2DP 펄스 오디오 소스는 bluez 5.45를 사용하여 휴대폰에서 Linux로 사운드를 재생합니다.

Bluetooth A2DP 펄스 오디오 소스는 bluez 5.45를 사용하여 휴대폰에서 Linux로 사운드를 재생합니다.

Bluetooth A2DP를 사용하여 컴퓨터 스피커를 통해 음악을 재생할 수 있도록 휴대폰의 사운드를 펄스 오디오 입력으로 표시하려고 합니다. 저는 아치 리눅스와 bluez 5.45를 사용하고 있습니다.

웹에는 이에 대한 수많은 가이드가 있지만 모두 오래된 것 같습니다. 특히 bluez 5.45(bluez-utils 5.45 및 bluez-tools 0.2 포함)의 경우 더 이상 파일이 없습니다 /etc/bluetooth/audio.conf. 더 이상 존재하지 hcitool않습니다 sdptool. org.bluez.AudioSource더 이상 dbus를 통해 hci 장치의 인터페이스를 호출할 수 없습니다 . 일부 웹 페이지에서는 이제 모든 것이 "제대로 작동"해야 한다고 제안하지만 휴대폰(Pixel)을 컴퓨터와 페어링한 후에는 소스나 수신기가 전혀 표시되지 않습니다.

작동 방식: 휴대전화를 페어링 bluetoothctl하고 핑하는 것으로 시작할 수 있습니다 l2ping. 내 사용자를 lp그룹에 넣고 /etc/dbus-1/system.d/bluetooth.conf가능한 모든 블루투스 권한을 갖도록 편집했습니다. , 및 를 pacmd list-modules로드했음을 보여줍니다 . 내 휴대폰의 Bluetooth 메뉴에서 내 컴퓨터에 "미디어 오디오"라고 표시됩니다(정확한지 확실하지 않음).module-bluetooth-policymodule-bluetooth-discovermodule-bluez5-discover

그러나 pacmd list-sourcesBluetooth에 대한 내용은 나열되어 있지 않으며 아래에는 Bluetooth에 대한 힌트도 없습니다 pavucontrol.

답변1

글쎄, 나는 이것을 알아 내려고 몇 시간을 보냈지 만 어떤 이유로 내 전화에 연결할 수 없습니다. 그러나 그런 다음 다른 컴퓨터에서 시도해 보았고 셸에 입력하는 것만으로도 연결하고 오디오가 작동하도록 하는 데 충분했습니다 connect xx:xx:xx:xx:xx:xx. bluetoothctl그런 다음 첫 번째 컴퓨터로 돌아가서 실행 remove xx:xx:xx:xx:xx:xx하고 다시 페어링했더니 제대로 작동했습니다.

제가 다르게 한 한 가지는 작동할 때 페어링하고 연결하는 동안 음악을 재생하는 것이었지만, 첫 번째 경우에는 오디오를 보내기 전에 연결을 시도했습니다.

기본적으로 아치에서 블루투스를 사용하려는 다른 사람들을 위해 요약하면 다음 단계입니다.

pacman --needed -S pulseaudio-bluetooth bluez-utils bluez-tools rfkill
systemctl enable bluetooth
systemctl start bluetooth
rfkill unblock bluetooth
gpasswd -a `logname` lp

그런 다음 직접 실행할 때 pulseaudio -k로그아웃했다가 다시 로그인하여 lp 그룹(블루투스 액세스 제공)에 들어가세요.

이제 휴대폰에 내장된 스피커를 통해 음악을 재생하고 휴대폰을 페어링 모드로 전환하세요.

마지막으로 루트로 다시 실행 bluetoothctl하고 유틸리티에서 다음 명령을 실행합니다.

power on
scan on
pair xx:xx:xx:xx:xx:xx
[confirm pin]
scan off
connect xx:xx:xx:xx:xx:xx
trust xx:xx:xx:xx:xx:xx

이 시점에서 모든 것이 정상이면 전화기가 스피커를 통한 재생을 중단하고 pavucontrol앱 아래에 새 입력이 표시됩니다.

휴대폰이 범위 내에 있을 때 자동으로 연결되도록 하려면 휴대폰이 음성에 액세스할 수 있도록 승인하기 trust위한 사본 없이 이 명령이 필요합니다. 그렇지 않으면 다음 명령을 사용하여 컴퓨터에서 모든 연결을 시작 bt-agent해야 합니다 .connectbluetoothctl

dbus-send --system --type=method_call --dest=org.bluez \
    /org/bluez/hci0/dev_xx_xx_xx_xx_xx_xx org.bluez.Device1.Connect

관련 정보