Web Audio API chính xác là những gì bạn muốn. Cụ thể, bạn muốn cấp một MediaElementAudioSourceNode
vào một số AnalyserNode
. Rất tiếc, API âm thanh trên web chỉ được triển khai trong Chrome (phần nào được triển khai trong FF) và thậm chí là 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);
Tôi không biết liệu Javascript có phù hợp với các tác vụ như vậy hay không. Vui lòng tham khảo chủ đề này: http://stackoverflow.com/questions/11182587/extract-audio-from-video-stream-using-javascript –