ローカルマシンで実行されているGoogleAppEngine開発サーバー(1.7.0)からオーディオを再生する場合、オーディオはChrome(20.0.1132.47)で1回だけ再生されます。本番サーバーにデプロイされた後、play()を複数回呼び出すと、同じオーディオが正しく機能します。
Firefoxでは、どちらのサーバーを使用してもオーディオは正しく再生されます。
オーディオAPIを直接使用しようとすると同じ問題が発生しますが、Buzz(http://buzz.jaysalvat.com/)を使用しています。
私のコードは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開発サーバー、またはその2つの組み合わせのバグですか?
編集:これはChromeのバグであり、サーバーが206Partial-Contentではなく200OK応答を使用してファイルを返す場合のオーディオシークをサポートしていません。ここに未解決の問題があります: http ://code.google.com/p/chromium/issues/detail?id = 121765AppEngine開発サーバーはHTTP1.0のみを実装しているため、問題が発生します。