wavesurfer.jsは、オーディオファイルから波形をレンダリングするのに最適ですが、生成される波形/スペクトログラフの振幅/周波数にCSSプロパティをアニメーション化することが可能かどうかは疑問ですによってwaveurfer.js?別のパラメータに割り当てることのできる変数の種類がありますか(たとえば、不透明度が<img>
)?wavesurfer.jsを使用してCSSプロパティをアニメーション化する
9
A
答えて
7
wavesurfer.jsを見るとAnalyserNode
をwavesurfer.backend.analyser
で取得できます。
注:analyser
がAnalyserNode
のインスタンスであることを確認する必要があります。ブラウザがWeb Audio APIをサポートしている場合のみです。
AnalyserNode
からAnalyserNode.frequencyBinCount
プロパティを取得すると、creating a visualisation/animationを開始できます。
自分のサイトのwavesurfer.js examplesに簡単な例(codepen)を作成しました。
var wavesurfer = WaveSurfer.create({
container: '#waveform',
waveColor: '#5B88C8',
progressColor: '#264E73'
});
wavesurfer.load('https://ia902606.us.archive.org/35/items/shortpoetry_047_librivox/song_cjrg_teasdale_64kb.mp3');
//get the AnalyserNode from wavesurfer
//@see https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode
var analyser = wavesurfer.backend.analyser,
//array to store the frequency data
//@see https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/getByteFrequencyData
frequencyData = new Uint8Array(analyser.frequencyBinCount),
//div to animate and play/pause button
box = document.getElementById('box'),
play = document.getElementById('play');
//play button - play pause audio
play.addEventListener('click', function() {
wavesurfer.playPause();
});
//wavesurfer 'audioprocess' event Fires continuously as the audio plays @see events on wave surfer http://wavesurfer-js.org/docs/events.html
wavesurfer.on('audioprocess', function(e) {
analyser.getByteFrequencyData(frequencyData);
//console.log(frequencyData);
//simple example - get the first value in the array and set the width of the box
var w = frequencyData[0] * 0.05;
//apply a scale transform;
box.style.transform = 'scale(' + w + ',1)';
});
/* add some transition */
.animation {
margin: 50px auto;
width: 50px;
height: 50px;
background-color: #71C2D0;
transition: transform 0.1s ease-out;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/wavesurfer.js/1.2.3/wavesurfer.min.js"></script>
<div id="waveform"></div>
<div id="box" class="animation"></div>
<button id="play">Play</button>
関連する問題
- 1. cssアニメーションを使用してメニューをアニメーション化する方法は?
- 2. Element.animate()をアニメーション化するプロパティとして変数を使用
- 3. CSSを使用してファイルのアップロードボタンをアニメーション化する
- 4. CSSは、テキストインデントを使用してスクロールテキストをアニメーション化します
- 5. Python:mplot3dとアニメーションを使用してベクトルをアニメーション化する
- 6. loop-jQuery-animationのCSS "clip"プロパティをアニメーション化する方法は?
- 7. -presentModalViewControllerを使用する:アニメーション:UITabBarControllerを使用してアニメーション化しない
- 8. CSSを使用して無限ループで画像をアニメーション化する
- 9. 添付プロパティを使用してXAMLでWPF要素をアニメーション化しますか?
- 10. WPFのObjectAnimationUsingKeyFramesを使用してコントロールの「スタイル」プロパティをアニメーション化します
- 11. CSSスキュートランジションを使って斜め線をアニメーション化する方法
- 12. JavaScriptを使ってCSSアニメーションを最適化する
- 13. Swiftを使用してUITextFieldのNSTextAlignmentを使って変化をアニメーション化する
- 14. どのCSSプロパティがjQueryでアニメーション化されているかを調べる
- 15. CSSプロパティを使用
- 16. クリック時にjavascriptを使用してCSSアニメーションを加速する
- 17. jQueryを使用して非同期CSSアニメーションを開始する
- 18. CSSを使用して、中央の図形を入力して周回する図形をアニメーション化する
- 19. CSSアニメーションのスケールを使用する
- 20. GSAPを使用してぼかしフィルタをアニメーション化する
- 21. javascriptを使用してフリーズするCSSアニメーション
- 22. フェイディング効果をアニメーション化するCSS
- 23. CSSを使用したSVGのアニメーション
- 24. run/pause jQueryを使用したCSSアニメーション
- 25. CSSアンカーリンクを使用したJavascriptアニメーション
- 26. JavaScriptを使用したCSSアニメーション
- 27. jqueryのCSSアニメーションのプロパティ
- 28. 複数のプロパティのCSSアニメーション
- 29. インターポレーターを使用してX3DOMアニメーションを最適化する
- 30. Androidでデータバインディングを使用してビューをアニメーション化する
本当にありがとうございました!私はまだ詳細を理解していませんが、画像の不透明度をアニメーション化するためにコードを修正しましたが、CSS3のフィルタプロパティをアニメーション化する際に問題があります。 – Roland
他のCSSプロパティと同様に、フィルタをアニメーション化することができます。遷移:フィルタ0.5s線形;もしあなたがjavascriptを使ってそれをやりたいのなら、これは役に立つかもしれません。http://stackoverflow.com/questions/20082283/animate-css-blur-filter-in-jquery – r8n5n
誰かが見ていると、詩はサラの「歌」ですTeasdale](http://www.bartleby.com/273/50.html)、[この特定の録音はLibriVoxのものです](https://librivox.org/short-poetry-collection-047/)を参照してください。 – approxiblue