2012-11-16 24 views

回答

2

有可能與純JavaScript來做到這一點。

你必須看看webaudio API:https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html

的想法是這樣的: 音頻流經過的節點。

[Source node (i.e. your video)]-->[Analyzer node]-->[Your custom js node] 

和(如果想播放音頻):

[Source node (i.e. your video)]-->[Output node (i.e. speakers)] 

分析儀節點將讓你實時分析的頻率取樣,感謝的聲音和一個FFT(又名快速傅立葉變換)。

您現在有FFT提供了各頻率的振幅。所以你可以從中攫取低音和高音。

現在,您可以將自定義js節點插入分析儀,並使用onaudioprocess回調來分析分析儀節點給出的頻率,然後按照您的要求進行操作。

這是一個相當有據可查的代碼,我寫它:https://github.com/xseignard/webGLWebAudioAPI/blob/master/js/app/audio.js

這是下面演示的一部分:http://xseignard.github.com/webGLWebAudioAPI/

也有這篇文章,它提供了一些很好的指針:http://www.smartjava.org/content/exploring-html5-web-audio-visualizing-sound

下面的演示(看代碼):http://www.smartjava.org/examples/webaudio-filters/

請注意這些演示只適用於最近的Chrome

有它的樂趣

UPDATE:這種解決方案只適用於純HTML5視頻,而不是YouTube那些爲@ TIM-wintle mentionned。

2

澤維爾的迴應是對於一般情況非常好,但如果你瞭解YouTube API專門詢問則沒有,你不能這樣做。

特別是,您應仔細閱讀YouTube服務API條款: https://developers.google.com/youtube/terms

特別的,你可能不「獨立,隔離或修改任何的YouTube視聽內容的音頻或視頻組件通過提供YouTube API「。

從技術角度來看,他們已經採取措施在flash播放器,以防止進入流,並在iframe API在他們放在內容上的獨立域名,以防止這一點。

+0

你說得對,我只dealed純HTML5視頻的問題的一部分。感謝蒂姆的見解。 –

相關問題