树莓派4已装Google Assistant Service SDK,如何用Python实现音乐流播放
解决树莓派4上Google Assistant SDK无法播放音乐/电台的Python实现方案
核心原因
Google Assistant Service SDK仅返回媒体流URL,不会直接触发本地播放,需要自行编写代码捕获该URL并调用音频播放器完成播放动作。
实现步骤
1. 监听Assistant的媒体响应
在现有Assistant代码中,捕获MEDIA_RESPONSE类型事件,提取媒体流地址并调用播放逻辑。示例代码片段:
import google.auth from google.assistant.library import Assistant from google.assistant.library.event import EventType import vlc def process_event(event): if event.type == EventType.MEDIA_RESPONSE: media_url = event.media_response.audio_url if media_url: play_media(media_url) def play_media(url): # 初始化VLC播放器并播放流 instance = vlc.Instance() player = instance.media_player_new() media = instance.media_new(url) player.set_media(media) player.play() # 可选:阻塞等待播放结束 while player.is_playing(): continue # 启动Assistant监听事件 credentials, _ = google.auth.default() with Assistant(credentials) as assistant: for event in assistant.start(): process_event(event)
2. 安装依赖播放器
树莓派上需安装对应的音频播放器及Python绑定:
- 若使用VLC:
sudo apt-get install vlc python3-vlc
- 若偏好轻量的
mpg123(仅支持音频流),可替换播放函数:
import subprocess def play_media(url): subprocess.run(["mpg123", "-q", url])
安装mpg123:
sudo apt-get install mpg123
3. 配置音频输出
确保树莓派音频输出设备设置正确:
sudo raspi-config
进入System Options -> Audio,选择对应输出设备(3.5mm耳机或HDMI)。
4. 媒体控制扩展(可选)
如需支持暂停、继续、停止等操作,可监听MEDIA_CONTROL事件:
# 全局维护播放器实例 player = None def init_player(): global player instance = vlc.Instance() player = instance.media_player_new() def process_event(event): global player if event.type == EventType.MEDIA_RESPONSE: media_url = event.media_response.audio_url if media_url: media = vlc.Instance().media_new(media_url) player.set_media(media) player.play() elif event.type == EventType.MEDIA_CONTROL: control_type = event.media_control.type if control_type == "PAUSE": player.pause() elif control_type == "RESUME": player.play() elif control_type == "STOP": player.stop() # 初始化播放器 init_player()
关键注意事项
- 确认Google账号已授权访问对应媒体内容(如YouTube Music、第三方电台服务)
- 部分加密媒体流需携带会话认证信息,可从Assistant事件的上下文参数中提取
- 先直接用播放器测试提取到的
media_url,排除网络或内容权限问题
内容的提问来源于stack exchange,提问作者Ageis
相关产品推荐
相关产品推荐

