将MediaElementAudioSourceNode连接到AudioContext.destination并不起作用

时间:2015-04-26 19:50:39

标签: javascript html5-audio web-audio audiocontext

Here's a fiddle to show the problem。基本上,每当调用AudioContext对象的createMediaElementSource方法时,音频元素的输出就会重新路由到返回的MediaElementAudioSourceNode。这一切都很好,根据规格;然而,当我尝试将输出重新连接到扬声器时(使用AudioContext的{​​{3}}),没有任何反应。

我错过了一些明显的东西吗?也许它与跨域音频文件有关?我只是无法在Google上找到有关该主题的任何信息,并且在destination中没有看到它的说明。

小提琴的代码是:

var a = new Audio();
a.src = "http://webaudioapi.com/samples/audio-tag/chrono.mp3";
a.controls = true;
a.loop = true;
a.autoplay = true;
document.body.appendChild(a);

var ctx = new AudioContext();


// PROBLEM HERE
var shouldBreak = true;
var src;
if (shouldBreak) {
    // this one stops playback
    // it should redirect output from audio element to the MediaElementAudioSourceNode
    // but src.connect(ctx.destination) does not fix it
    src = ctx.createMediaElementSource(a);
    src.connect(ctx.destination);
}

1 个答案:

答案 0 :(得分:3)

是的,Web Audio API requires that the audio adhere to the Same-Origin Policy。如果您尝试播放的音频不是来自同一原点,则需要相应的Access-Control标头。 resource in your example没有必需的标题。