Raspberry Pi3와 블루투스 연결한 스마트폰의 음악 재생을 AVRCP로 제어
8878 단어 RaspberryPiBluez파이썬AVRCP블루투스
소개
Raspberry pi와 블루투스로 연결된 스마트 폰의 음악 재생을 AVRCP로 제어하는 방법의 메모
환경
이전 준비
htps : // 기 st. 기주 b. 이 m / 오 q / 24에 09112b07464 아 cb이다 1
htp : // bg. b?? 이 m / 라 sp 베 ry 피 / 라 sp 베 ry 피 b와 th. HTML
위의 URL을 참고로 RaspberryPi를 Bluetooth 오디오(A2DP) 수신기화하여 스마트폰에서 음악 재생할 수 있는 상태로 둔다.
(※A2DP로 접속하지 않으면 AVRCP를 사용할 수 없는 것 같지만, 어쩌면 AVRCP만으로 사용하는 방법도 있을지도?)
AVRCP로 제어해보기
dbus-python을 사용한 데모
BT_MediaPlayer.py#!/usr/bin/python
import dbus
SERVICE_NAME = "org.bluez"
ADAPTER_INTERFACE = SERVICE_NAME + ".MediaPlayer1"
bus = dbus.SystemBus()
manager = dbus.Interface(bus.get_object(SERVICE_NAME, "/"),
"org.freedesktop.DBus.ObjectManager")
objects = manager.GetManagedObjects()
if __name__ == '__main__':
for path, ifaces in objects.iteritems():
adapter = ifaces.get(ADAPTER_INTERFACE)
if adapter is None:
continue
print path
player = bus.get_object('org.bluez',path)
BT_Media_iface = dbus.Interface(player, dbus_interface=ADAPTER_INTERFACE)
break
while 1:
s = raw_input()
if s == 'quit':
break
if s == 'play':
BT_Media_iface.Play()
if s == 'pause':
BT_Media_iface.Pause()
if s == 'stop':
BT_Media_iface.Stop()
if s == 'next':
BT_Media_iface.Next()
if s == 'pre':
BT_Media_iface.Previous()
if s == 'show':
track = adapter.get('Track')
print 'Title: ' + track.get('Title')
print 'Artist: ' + track.get('Artist')
print 'Album: ' + track.get('Album')
print 'Genre: ' + track.get('Genre')
print 'NumberOfTracks: ' + str(track.get('NumberOfTracks'))
print 'TrackNumber: ' + str(track.get('TrackNumber'))
print 'Duration: ' + str(track.get('Duration'))
위의 코드를 실행하면 입력 대기 상태가되므로 명령을 입력합니다.
사용 가능한 명령은 다음과 같습니다.
dbus-python을 사용한 데모
BT_MediaPlayer.py
#!/usr/bin/python
import dbus
SERVICE_NAME = "org.bluez"
ADAPTER_INTERFACE = SERVICE_NAME + ".MediaPlayer1"
bus = dbus.SystemBus()
manager = dbus.Interface(bus.get_object(SERVICE_NAME, "/"),
"org.freedesktop.DBus.ObjectManager")
objects = manager.GetManagedObjects()
if __name__ == '__main__':
for path, ifaces in objects.iteritems():
adapter = ifaces.get(ADAPTER_INTERFACE)
if adapter is None:
continue
print path
player = bus.get_object('org.bluez',path)
BT_Media_iface = dbus.Interface(player, dbus_interface=ADAPTER_INTERFACE)
break
while 1:
s = raw_input()
if s == 'quit':
break
if s == 'play':
BT_Media_iface.Play()
if s == 'pause':
BT_Media_iface.Pause()
if s == 'stop':
BT_Media_iface.Stop()
if s == 'next':
BT_Media_iface.Next()
if s == 'pre':
BT_Media_iface.Previous()
if s == 'show':
track = adapter.get('Track')
print 'Title: ' + track.get('Title')
print 'Artist: ' + track.get('Artist')
print 'Album: ' + track.get('Album')
print 'Genre: ' + track.get('Genre')
print 'NumberOfTracks: ' + str(track.get('NumberOfTracks'))
print 'TrackNumber: ' + str(track.get('TrackNumber'))
print 'Duration: ' + str(track.get('Duration'))
위의 코드를 실행하면 입력 대기 상태가되므로 명령을 입력합니다.
사용 가능한 명령은 다음과 같습니다.
잘하면 연결된 스마트 폰의 경로가 표시되며 다양한 명령으로 음악 재생을 제어 할 수 있습니다.
아래는 show 명령을 실행한 예
참고
ぃ tp // 코 m / 엣 g 만 / 있어 ms / 339 아 9c9b338634 아 c27 아 5
htps //w w. 등 sp 벨 ry 피. 오 rg / ふぉる ms / ぃぃえ w와 피 c. php? t=111486&p=766936
Reference
이 문제에 관하여(Raspberry Pi3와 블루투스 연결한 스마트폰의 음악 재생을 AVRCP로 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ryo_2552/items/30cb07454670450e3adf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Raspberry Pi3와 블루투스 연결한 스마트폰의 음악 재생을 AVRCP로 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryo_2552/items/30cb07454670450e3adf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)