Im utilizzando l'API WebAudio con l'oggetto new Audio()
come origine. Quanto segue è una versione semplificata di ciò che sto facendo. Questo tuttavia non riproduce alcun suono in firefox 25.0.1.Firefox WebAudio createMediaElementSource non funzionante
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/
ho letto in un altro question che createMediaElementSource
richiede CORS. Il file nell'esempio sopra sembra avere Access-Control-Allow-Origin: *
ma ancora non funziona in firefox. Se eseguo lo stesso esempio localmente con un file audio locale, tutto funziona correttamente.
Non sono sicuro se questo è un bug o se sto facendo qualcosa di terribilmente sbagliato. Qualsiasi aiuto è apprezzato.
Questo appare come un bug di Firefox per me. Le intestazioni CORS sono sicuramente lì, e il codice è tutto corretto. –
Sembra un bug https://bugzilla.mozilla.org/show_bug.cgi?id=937718 – z33m
Hmm. Beh, suppongo che tu possa probabilmente usare AJAX come un fermo, dal momento che il file OGG ha un'intestazione CORS. In bocca al lupo. –