우선, 문제 : Cowon MP3 플레이어를 기본 귀마개가있는 메인 뮤직 플레이어로 사용하고 있습니다.
A2DP를 제공하며 UNE 10.04를 실행하는 넷북을 수신기로 사용하고 싶습니다.
a2dp에 관한 웹상의 일부 자료는 있지만 대부분 오래된 자료입니다.
우선, 문제 : Cowon MP3 플레이어를 기본 귀마개가있는 메인 뮤직 플레이어로 사용하고 있습니다.
A2DP를 제공하며 UNE 10.04를 실행하는 넷북을 수신기로 사용하고 싶습니다.
a2dp에 관한 웹상의 일부 자료는 있지만 대부분 오래된 자료입니다.
답변:
Ubuntu 시스템을 a2dp Bluetooth 장치로 사용하려면 먼저 "a2dp 싱크"엔드 포인트로 등록하도록 구성해야합니다.
Ubuntu (10.04 이상) 의 bluez 패키지에는 Bluetooth 장치가 a2dp 싱크로 구성되어 있는지 여부를 확인하는 데 사용할 수있는 sdptool 이라는 유틸리티가 포함되어 있습니다. 다음은 Bluetooth 헤드셋에 대해 sdptool 실행 결과입니다 (주소는 그놈 제어 센터의 "Bluetooth 설정"대화 상자에서 가져옵니다).
$ sdptool search --bdaddr 00:18:16:3A:3B:D4 a2snk
Searching for a2snk on 00:18:16:3A:3B:D4 ...
Service RecHandle: 0x10002
Service Class ID List:
"Audio Sink" (0x110b)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 25
"AVDTP" (0x0019)
uint16: 0x102
Profile Descriptor List:
"Advanced Audio" (0x110d)
Version: 0x0102
$
로컬 Ubuntu 시스템에 대해 실행할 때의 출력은 다음과 같습니다.
$ sdptool search --bdaddr local a2snk
Searching for a2snk on FF:FF:FF:00:00:00 ...
$
이것은 Ubuntu 시스템이 자체를 a2dp 싱크로 알리지 않음을 나타냅니다. 그러나 a2dp 소스로 자체 광고됩니다.
$ sdptool search --bdaddr local a2src
Searching for a2src on FF:FF:FF:00:00:00 ...
Service Name: Audio Source
Service RecHandle: 0x10003
Service Class ID List:
"Audio Source" (0x110a)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 25
"AVDTP" (0x0019)
uint16: 0x102
Profile Descriptor List:
"Advanced Audio" (0x110d)
Version: 0x0102
이를 통해 Ubuntu 시스템은 헤드셋과 오디오 소스로 올바르게 페어링 할 수 있지만 Ubuntu 시스템을 Bluetooth 오디오의 출력 (싱크)으로 사용할 수는 없습니다.
를 편집 /etc/bluetooth/audio.conf
하면 [General]
섹션 아래에이 줄을 추가하여 a2dp 싱크 지원을 활성화 할 수 있습니다 .
Enable=Source
이것은 우리가 여기에 추가하는 것은 소스 지원이 아닌 블루투스 싱크 지원이기 때문에 반 직관적으로 명명되며 모든 구현 된 서비스가 기본적으로 활성화되어 있다고 주장하는이 파일의 의견과 모순됩니다. :(
이 변경을 수행 한 후을 실행하여 bluetoothd를 다시 시작해야합니다 sudo service bluetooth restart
.
이 작업을 수행하는 동안 이전에 Android 장치와 Ubuntu 컴퓨터를 페어링 한 경우 Android에서 Ubuntu를 사용 가능한 오디오 장치로 인식하도록하려면 양쪽에서 페어링을 삭제하고 다시 페어링해야합니다.
이 작업을 완료하면 Android 기기가 PulseAudio에서 입력 기기로 표시됩니다. PulseAudio가 새 Bluetooth 오디오 소스를 감지하지 못하면 명령 행에서 Bluetooth 모듈을 설치하고로드해야합니다.
sudo apt-get install pulseaudio-module-bluetooth
pactl load-module module-bluetooth-discover
그런 다음 루프백 연결 (소스에서 싱크로 직선)을 사용하여이 오디오 입력을 출력 / 싱크 (예 : 스피커 또는 Bluetooth 헤드셋)로 라우팅하도록 PulseAudio에 지시해야합니다.
최신 버전의 PulseAudio에는 모듈 블루투스 정책이 포함되어있을 수 있으며 이미 루프백 장치를 설정했을 수도 있지만 가장 일반적인 경우는 아닙니다.
루프백 연결을 설정 하는 반자동 방법 ( pauvcontrol GUI 프로그램도 설치되어있는 경우)은 PulseAudio가 설정을 기억하기 때문에 단순히 루프백 모듈을로드하고 pavucontrol을 사용하여 구성하는 것입니다. pactl을 사용하여 명령에서 모듈을로드합니다.
pactl load-module module-loopback
아직 아무것도 듣지 못하거나 이상한 피드백 효과가 발생하더라도 걱정하지 마십시오. 새로 만든 장치에 입력 할 소스와 출력을 보낼 싱크를 알려야합니다.
pavucontrol을 열고 구성 탭을여십시오. Bluetooth 장치가 여기에 표시되는지 (blueman-manager 또는 다른 Bluetooth 도구를 사용하여 페어링 한 후) 프로파일이 A2DP로 설정되어 있는지 확인하십시오. 입력 장치 탭으로 전환하여 장치가 여기에 표시되고 음소거되지 않았는지 확인하십시오. 이제 레코딩 탭으로 전환하고 새로 생성 된 루프백 연결이 음소거 버튼 옆에있는 선택 상자를 사용하여 디바이스를 소스로 사용하도록하십시오. 루프백 연결이 동일한 방식으로 사용해야하는 싱크를 선택하려면 재생 탭으로 전환하십시오. 루프백 장치가 탭에 표시되지 않으면 각 탭 하단의 선택 상자를 사용하여 모든 스트림이 표시되는지 확인하십시오.
이제 장치에서 재생 중이거나 스피커 또는 선택한 출력 싱크 중 하나에서 오디오를들을 수 있습니다. 장치 연결이 끊어지면 루프백 장치가 사용 가능한 싱크 및 소스로 폴백되므로 바람직하지 않을 수 있으므로 필요할 때까지 루프백 장치를 음소거하십시오. 다음 번에 모듈-*-복원 모듈 덕분에 동일한 Bluetooth 장치가 연결될 때 루프백 연결이 동일한 싱크 / 소스를 복원합니다.
그래도 작동 하지 않거나 pavucontrol이 설치되어 있지 않으면 다음 방법을 사용하여 루프백을 설정할 수 있습니다.
pactl load-module module-loopback source_dont_move=yes source=$BTSOURCE sink=$SINK
( $BTSOURCE
예 : PulseAudio에 표시된대로 Bluetooth 장치의 소스 이름으로 bluez_source.14_DA_E9_2A_D7_57
바꾸고 $SINK
, 오디오 스트림을 보내려는 PulseAudio 출력의 이름으로 바꾸십시오 alsa_output.pci-0000_00_1b.0.analog-stereo
. 활성 싱크로 설정하고 나중에 pavucontrol을 통해 변경하십시오.)
$SINK
와 pactl list sinks
이 후 표시된 것,Name:
$BTSOURCE
과 함께 볼 수 있습니다pactl list sources
source_dont_move
인수는 Bluetooth 장치의 연결이 끊어졌을 때 루프백 연결이 다른 오디오 소스로 다시 떨어지는 것을 방지합니다. 대신 제거되어 다음에 다시 설정해야합니다.다음은 하나의 예입니다 ( Bluetooth 주소에서 :
with 를 대체하십시오 _
!).
pactl load-module module-loopback source_dont_move=yes source=bluez_source.14_DA_E9_2A_D7_57 sink=alsa_output.pci-0000_00_14.2.analog-stereo
폴백 모듈로드에 실패하면 source_dont_move=yes
인수를 제거해보십시오 . 버전 1.0에서 처음 사용 가능했습니다. 그러나이 오디오를 삭제하기 전에이 루프백 연결을 제거하십시오. 예를 들어 랩탑 마이크가 음소거 해제되어 있으면 피드백이 매우 나빠질 수 있습니다. 완료되면이 루프백 연결을 수동으로 삭제하려면 다음을 실행하십시오.
pactl unload-module $(pactl list short modules | grep "loopback.*$BTSOURCE" | cut -f1)
다시, $BTSOURCE
Bluetooth 장치를 나타내는 PulseAudio 소스의 이름으로 바꾸 십시오. load-module 명령에서 반환 한 id를 사용하여 모듈을 언로드 할 수도 있습니다.
$ pactl load-module module-loopback source_dont_move=yes source=bluez_source.14_DA_E9_2A_D7_57 sink=alsa_output.pci-0000_00_14.2.analog-stereo
15
$ pactl unload-module 15
참고 문헌 :
pactl load-module module-bluethooth-discover
우분투 스튜디오 14.04에서 명령 이 실패합니다. 따라서 휴대폰에서 PC를 오디오 싱크로 올바르게 인식하더라도에 bluez
소스 가 표시되지 않습니다 pulseaudio
. 어떤 아이디어?
pactl list sources short
당신을위한 bluez 소스를 표시하지 않습니다, 나는 두 가지 해결책을 발견했습니다 : 전화 gdbus call --system --dest org.bluez --object-path /org/bluez/XXX/hci0/dev_XX_XX_XX_XX_XX_XX --method org.bluez.AudioSource.Connect
(경로 장치 BD 주소와 당신이 얻을 수있는 느릅 나무 어댑터 경로를 포함 gdbus call --system --dest org.bluez --object-path / --method org.bluez.Manager.DefaultAdapter
). 또는 여기 설명 된 대로 d- 피트를 사용 하십시오 . 그렇지 않으면 전화쪽에 연결하고 무언가를 시작하십시오.
우분투 소프트웨어 센터에서 설치된 블루 맨을 사용합니다. 블루 맨 아이콘 *-> "로컬 서비스"-> 오디오-> "고급 오디오 수신"확인을 마우스 오른쪽 버튼으로 클릭하십시오. Btw 나는 그것을 Ubuntu 11.10 랩톱에서 안드로이드 폰에서 재생하는 것을 듣는 데 사용합니다.
* 블루 맨 아이콘은 gnome shell + ubuntu 11.10의 오른쪽 하단 모서리에 표시됩니다. 나는 이것이 당신에게 어떤 식으로 유용하기를 바랍니다.
우분투 12.04에서는 정말 간단합니다.
블루투스 기기 연결
블루투스 기기를 검색하고 소스 번호를 기록해 둡니다.
pactl list sources
블루투스 장치의 루프백을 만드십시오 :
pactl load-module module-loopback source=$SOURCE_NUMBER
여기서 $ SOURCE_NUMBER는 이전에 메모 한 번호입니다.
예를 들어, 오디오를 재생하려면 다음을 입력하십시오.
$ pactl load-module module-loopback source=3
그게 다야! 상단 답변의 솔루션이 약간 복잡하다는 것을 알았 으므로이 방법을 단순화했습니다 (입력 및 복사 / 붙여 넣기가 훨씬 적음). 로 블루투스 장치 앞에 나열된 오디오 장치를 제거하면 솔루션이 손상 될 수 있습니다 pactl list sources
.
또한 블루투스 장치를 분리하기 전에 루프백 모듈을 제거하는 것을 잊지 마십시오 :
생성 한 루프백 장치의 모듈 번호를 기록해 두십시오.
pactl list short modules
루프백 장치를 제거하십시오.
pactl unload-module $MODULE_NUMBER
이전 답변은 12.04 릴리스 이전에 작성되었으므로 약간의 변경 사항이 있다고 확신합니다. 예를 들어, 블루투스 장치를 오디오 소스로 사용하여 수동으로 활성화 할 필요가 없었습니다 (기본적으로 활성화되어 있음). 그러나 때때로 휴대 전화의 Bluetooth 설정 (CyanogenMod 9.1.0을 실행하는 Samsung Captivate)에서 "미디어 오디오"프로필을 전환해야하는 경우가 있습니다.
쉘 스크립트를 사용하여 블루투스 A2DP 장치 연결을 감시하고 자동으로 루프백 모듈을로드하여 dbus-monitor를 활용하는 방법이있을 것입니다.
우분투 12.10에서 더 이상 수동 으로이 작업을 수행 할 필요가 없기를 바랍니다.
13.04의 경우 소스 장치를 우분투 랩톱과 페어링하면 작동합니다! 지금은 그렇게 쉬웠다는 것을 알게되어 매우 시원합니다.
우분투 16.04에서는 기본적으로 작동합니다.
답변보다 훨씬 쉬운 솔루션입니다.
당신은 단순히 갈 수 있습니다
sudo apt-get install pulseaudio*
그런 다음 재부팅하십시오. 재부팅 후 블루투스에 연결하고 휴대 전화에서 음악을 재생하기 만하면됩니다. 모든 것이 컴퓨터로 전송되고 컴퓨터의 스피커에서 재생됩니다.
그리고 그렇습니다! 천만에요.
apt-get
와일드 카드가 아닌 정규식을 사용합니다. 그래서 당신은 무엇을 사용하여 설치 될지 모릅니다 pulseaudio*
(힌트 :로 시작하는 패키지가 아닙니다 pulseaudi
). PulseAudio는 이미 기본 우분투 설치의 일부입니다.