从本地计算机上运行的 Google App Engine 开发服务器 (1.7.0) 播放音频时,音频只会在 Chrome (20.0.1132.47) 中播放一次。部署到生产服务器后,多次调用 play() 时,相同的音频可以正常工作。
在 Firefox 中,音频可以使用任一服务器正确播放。
我正在使用 Buzz (http://buzz.jaysalvat.com/) 虽然我在尝试直接使用音频 API 时遇到了同样的问题。
我的代码每 2 秒播放一次音频,如下所示:
var mySound = new buzz.sound( "/audio/hoversound", {
formats: [ "ogg", "mp3", "wav" ]
});
setInterval(function() {
mySound.play();
}, 2000);
我的 app.yaml 有以下内容:
- url: /audio
static_dir: static/audio
mime_type: audio/ogg
无论有无 mime_type,它的行为都相同。
请注意,在 Javascript 代码中将 URL 更改为“http://somewebsite.appspot.com/audio/hoversound”可以让示例播放多次。
这是 Chrome 中的错误,还是 AppEngine 开发服务器中的错误,还是两者的结合?
编辑:这是 Chrome 中的一个错误,如果服务器使用 200 OK 响应而不是 206 Partial-Content 返回文件,则它不支持音频搜索。这里有一个未解决的问题: http ://code.google.com/p/chromium/issues/detail?id= 121765 AppEngine 开发服务器仅实现 HTTP 1.0,这就是问题出现的原因。