2016-12-20 1 views
0

周波数の特定の範囲でリアルタイムのfft周波数数値を取得したい。アニメーション/トランジション/フェードアウトエフェクトを使わずにキャンバスに描画し、フレーム間を切り替える必要があります。 いくつかのスクリプトが見つかりました。html5 audioアニメーションやフェードのないFFTリアルタイムキャンバス描画

https://github.com/wayou/HTML5_Audio_Visualizer

https://github.com/cwilso/AudioRecorder

ように私は、これらのスクリプトを採用しようとしたが、私はバーの間の遷移を削除する方法を発見しませんでした。私は、現在のmsでcurrenctレベルが "x"で、ゆっくりとフェーディング - ダウン、および別のアニメーションがない場合にのみ、バーが表示されるようにします。

キャンバスは、すでに作成されたオブジェクトのfillStyleの変更をサポートしていないようです。 私はキャンバスを使わずに古いスタイルをしようとしましたが、いくつかの棒グラフを描き不透明度を変更しましたが、透明でない境界線を持つビデオの上では機能しません。

2番目のリンクに示されているように、実際のマイク入力を使用すると、サウンドを停止すると、すべてフェードしてゆっくりと動きます。これを避ける方法はありますか?

多分KineticJSは役に立ちますか?

また、処理の遅延を避けるために、マイク入力のバッファを最小限に抑えることは可能ですか?

助けてください!

+0

キャンバスにはオブジェクトが格納されず、ピクセルのみが認識されます。参照したオーディオビジュアライザは、フレームごとにキャンバス全体を再描画します。ドロップするとレベルを滑らかにするための余分なコードがあり、簡単に取り除くことができます。ソースの '_drawSpectrum'関数を見て、レンダリングされた周波数バーを必要に応じて変更してください。 – Blindman67

答えて

0

最後に私は答えを見つけました。それは、デフォルト値が高いanalyserNode.smoothingTimeConstantでした。私はそれを0にして、すべて私が望むように行った! ありがとう!