这就是我正在做的事情:(1)创建一个视频元素; (2)在视频元素上创建AudioContext和MediaElementSourceNode; (3)将MediaElementSourceNode连接到目标节点; (4)播放视频。
它始终适用于Chrome。在Firefox中,它只显示视频的第一帧。
代码:
var video = document.createElement('video');
video.setAttribute('crossorigin', 'anonymous');
video.src = 'https://dl.dropboxusercontent.com/s/tozkw68tccsp39a/BrianNalumonWindmill360p.mp4'
var audioContext = new AudioContext();
var source = audioContext.createMediaElementSource(video);
source.connect(audioContext.destination);
document.body.appendChild(video);
video.play();

有趣的是,如果视频与网页位于同一服务器上,则可在Firefox中使用。所以我怀疑某种跨性别问题。但是,如果他们在不同的服务器上,无论我是否请求CORS标头(上述代码中的video.setAttribute行),它在Firefox中都会失败(并在Chrome中运行)。
如果它与CORS标题一起使用并且没有失败则完全有意义。它失败的事实对我来说似乎是一个Firefox错误;我还没有足够的信心提交错误报告。
任何人都有其他解释或修复?
答案 0 :(得分:2)
Firefox Web Audio API开发人员,正如您所猜测的那样,这是我们方面的一个错误。
另外,请不要犹豫,提交错误。最糟糕的情况是它被解析为无效或重复(在这种情况下,它对加权优先级有用)。