1

YouTube の動画に (埋め込みまたは YouTube API を使用して) リンクするか、単に HTML5 動画を使用するとします。前者の場合はFlashを扱っているので可能性はありそうです。後者のケースは不可能に思えます。

これには何かありますか?

4

2 に答える 2

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 でのみ動作することに注意してください

それを楽しんでください

更新:このソリューションは、@ tim-wintle で言及されているように、YouTube の動画ではなく、プレーンな html5 動画にのみ適用されます。

于 2012-11-19T11:22:51.110 に答える
2

Xavier の応答は、一般的なケースでは非常に優れていますが、特に YouTube API について質問している場合は、いいえ、それはできません。

特に、YouTube API 利用規約をよくお読みください: https://developers.google.com/youtube/terms

特に、「YouTube API を通じて利用できる YouTube オーディオビジュアル コンテンツのオーディオまたはビデオ コンポーネントを分離、分離、または変更する」ことはできません。

技術的な観点から、彼らはフラッシュ プレーヤーでストリームへのアクセスを防止する措置を講じており、iframe API ではこれを防止するためにコンテンツを別のドメインに配置しています。

于 2012-11-19T18:38:33.077 に答える