new Audio()
オブジェクトをWebAudio APIとして使用しています。以下は、私がやっていることの簡略版です。しかし、これは、firefox 25.0.1でサウンドを再生しません。Firefox WebAudio createMediaElementSourceが機能しない
var context;
if(window.webkitAudioContext) {
context = new webkitAudioContext();
} else {
context = new AudioContext();
}
var audio = new Audio();
// This file does seem to have CORS Header
audio.src = "http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg";
var source;
function onCanPlay() {
console.log("can play called");
source = context.createMediaElementSource(audio);
source.connect(context.destination);
audio.removeEventListener("canplay", onCanPlay);
audio.play();
}
if(audio.readyState < 3) {
audio.addEventListener("canplay", onCanPlay);
} else {
onCanPlay();
}
jsFiddle:http://jsfiddle.net/7bJUU/
私はcreateMediaElementSource
はCORSを必要とするという別のquestionで読みます。上の例のファイルはAccess-Control-Allow-Origin: *
のようですが、それでもfirefoxではうまくいきません。ローカルのオーディオファイルを使用して同じサンプルをローカルで実行すると、すべて正常に動作します。
これがバグか、何か間違ったことを行っているのかどうかは不明です。どんな助けもありがとうございます。
これは私にはFirefoxのバグのように見えます。 CORSヘッダーは間違いなく存在し、コードはすべて正しいです。 –
これはバグのようですhttps://bugzilla.mozilla.org/show_bug.cgi?id=937718 – z33m
うーん。 OGGファイルにはCORSヘッダーがあるので、おそらくAJAXをストップギャップとして使用することができます。がんばろう。 –