Web Audio API jest dokładnie tym, czego potrzebujesz. W szczególności chcesz przekazać MediaElementAudioSourceNode
do AnalyserNode
. Niestety Web Audio API jest zaimplementowany tylko w Chrome (nieco zaimplementowany w FF), a nawet w Chrome doesn't have full support for MediaElementAudioSourceNode
yet.
var context = new webkitAudioContext();
// feed video into a MediaElementSourceNode, and feed that into AnalyserNode
// due to a bug in Chrome, this must run after onload
var videoElement = document.querySelector('myVideo');
var mediaSourceNode = context.createMediaElementSource(videoElement);
var analyserNode = context.createAnalyser();
mediaSourceNode.connect(analyserNode);
analyserNode.connect(context.destination);
videoElement.play();
// run this part on loop to sample the current audio position
sample = new Float32Array(analyser.frequencyBinCount);
analyser.getFloatFrequencyData(sample);
Nie wiem, czy JavaScript nadaje się do takich zadań. Proszę odnieść się do tego tematu: http://stackoverflow.com/questions/11182587/extract-audio-from-video-stream-using-javascript –