我正在尝试播放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上都没有延迟,也没有延迟。知道为什么会有这种延迟吗?
答案 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 />
大于突发大小)