Im использует API WebAudio с объектом new Audio()
в качестве источника. Ниже приводится упрощенная версия того, что я делаю. Это, однако, не воспроизводит никаких звуков в firefox 25.0.1.
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/
Я читаю в другом question, что createMediaElementSource
требует CORS. Файл в приведенном выше примере, похоже, имеет Access-Control-Allow-Origin: *
, но он все еще не работает в firefox. Если я запускаю один и тот же пример локально с локальным звуковым файлом, все работает нормально.
Не уверен, что это ошибка, или если я делаю что-то ужасно неправильно. Любая помощь приветствуется.