2015-03-27 4 views
1

У меня возникли проблемы с тем, чтобы тэг html5 играл хорошо с помощью API Web Audio API .createMediaElementSource(). См. Ниже jsFiddle/code. Любая идея, что здесь не так, будет очень признательна.Web Audio API и <audio> тег

Я прочитал here, что это проблема в FireFox, но a) Я работаю в Chrome и b) он не работает, если .mp3 находится в той же папке, что и .html.

Конечная цель здесь - создать сайт, который будет фильтровать дорожки, поступающие из API SoundCloud, если у кого есть предложения.

http://jsfiddle.net/6v9jkcn1/

ЯШ:

$(function(){ 
    //create audio context 
    var context = new AudioContext(); 

    //set variable pointing at the audiotag 
    var audio = document.getElementById('player'); 

    //declare source that will become the media element source, create gain and filter, and connect them 
    var source; 
    var gain = context.createGain(); 
    var filter = context.createBiquadFilter(); 

    //routing 
    gain.connect(filter); 
    filter.connect(context.destination); 
    filter.frequency.value = 220; 

    //when the audio has sufficiently loaded, create media element source and connect it to the gain 
    audio.oncanplaythrough = function(){ 

     source = context.createMediaElementSource(audio); 

     source.connect(gain); 
     }; 
    }); 

HTML:

<audio id='player' src='http://develiot.com/eqsoundcloud/EttaAnything.mp3' controls></audio> 

ответ

1

Chrome следует Same Origin Policy тоже, если у вас нет CORS включены на сервере.

+0

Ah - Я так и думал - однако, это не работает, даже если файл находится в том же домене (не уверен, как моделировать это в stackoverflow –

+1

Когда вы говорите, что они находятся в одном домене, они оба в локальные файлы, загруженные URL-адресами «file: //». Локальные файлы никогда не работают с CORS. Все должно быть загружено через HTTP. – aldel

+0

ahh - не понял, что - спасибо !!! –

Смежные вопросы