Google Home Assistant上的mp3实时流媒体延迟

时间:2019-01-18 10:35:00

标签: node.js actions-on-google

我正在尝试播放mp3实时流媒体,并且正在使用“媒体响应”(如Google的“操作”指南中所示),代码如下:

if(!conv.surface.capabilities.has('actions.capability.MEDIA_RESPONSE_AUDIO')) {
  conv.ask('Sorry, this device does not support audio playback.');
}
else{
  conv.ask(new MediaObject({
    name: 'Radio one',
    url: 'my_streaming_url.mp3',
    description: 'A funky Jazz tune',
  }));
  conv.ask(new Suggestions(['Radio two']));
}

一切正常,但在Google home和Google home mini上大约有20秒的音频延迟。如果“ url”是mp3文件,则在Google Assistant Android应用和Google Simulator上的Action上都没有延迟,也没有延迟。知道为什么会有这种延迟吗?

2 个答案:

答案 0 :(得分:0)

实时流式传输网址的20秒延迟似乎是在Google主页(迷你版)和chromecast上出现的问题。不仅是从google助手启动的,还包括使用Google Cast API时的启动。我不知道他们为什么要使用这么多缓冲。

答案 1 :(得分:0)

Google Home 的媒体播放器似乎在启动前缓冲了大约 20-30 秒的可播放音频。

如果您控制 Icecast 流媒体服务器,请在 <burst-size> 部分或 <limits /> 中增加 <mount /> 值。默认设置为 65536 字节。

您可以通过计算以下内容来计算流的理想突发大小限制(以字节为单位):

bitrateKbps * bufferSeconds * 1024 / 8

对于 128kbps 的流,请尝试使用 327680。

(另外,请确保服务器的 <queue-size /> 大于突发大小)