【发布时间】:2014-11-27 12:46:22
【问题描述】:
这就是我正在做的事情:(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 错误。我只是没有足够的信心提交错误报告(还)。
任何人有其他解释或修复?
【问题讨论】:
-
嗯,我认为这可能是错误 https://bugzilla.mozilla.org/show_bug.cgi?id=937718,这会使它成为 this question 的副本。