Here's what I'm doing: (1) Create a video element; (2) create an AudioContext and a MediaElementSourceNode on the video element; (3) connect the MediaElementSourceNode to the destination node; (4) play the video.
It always works in Chrome. In Firefox, it only shows the first frame of the video.
Code:
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();
Interestingly, it works in Firefox if the video is on the same server as the web page. So I suspect some kind of cross-origin issue. But if they're on different servers, whether or not I request a CORS header (that's the video.setAttribute line in the above code), it fails in Firefox (and works in Chrome).
It would totally make sense to me if it worked with the CORS header and failed without. The fact that it fails either way seems like a Firefox bug to me; I'm just not quite confident enough to file a bug report (yet).
Anyone have another explanation, or a fix?