wavesurfer.js bir ses dosyasından bir dalga biçimi oluşturmak için harikadır, ancak oluşturulmakta olan herhangi bir CSS özelliğini dalga biçimi/spektrografının genliğine/frekansına ekleyebilme özelliğinin olup olmadığını merak ediyorum wavesurfer.js tarafından Başka bir parametreye atayabileceğim bir çeşit değişken var mı (örneğin: <img>
'un opaklığı)?wavesurfer.js dosyasını bir CSS özelliğini canlandırmak için kullanma
9
A
cevap
7
wavesurfer.js dosyasına bakıldığında, numaralı telefonu kullanarak wavesurfer.backend.analyser
'u kullanabilirsiniz.
Not: analyser
'un AnalyserNode
'un bir örneği olduğunu kontrol etmeniz gerekir. Tarayıcı sadece Web Audio API'u destekliyorsa bu olacaktır.
AnalyserNode
'dan, AnalyserNode.frequencyBinCount
özelliğinden creating a visualisation/animation başlatabilirsiniz.
Sitelerinde wavesurfer.js examples numaralı binadan basit bir örnek (codepen) yapıyorum.
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>
İlgili konular
- 1. jQuery'ye CSS özelliğini ekleyin
- 2. Bekleme özelliğini kullanarak .htaccess özelliğini kullanma
- 3. ObjectDisposedException özelliğini kullanma
- 4. Bir XML dosyasını ayrıştırmak için JavaScript'i kullanma
- 5. Bazı dosyaları silmek için bulma özelliğini kullanma
- 6. Kaydırma üzerindeki CSS özelliğini değiştir
- 7. R data.table: bir toplama özelliğini yeniden kullanma
- 8. Önemli bir CSS özelliğini nasıl kaldırabilirsiniz?
- 9. Sadece bir kullanıcı adıyla kimlik doğrulaması için Authlogic özelliğini kullanma
- 10. Metin Dosyaları ile çalışmak için Hazırda Bekletme özelliğini kullanma
- 11. Css dosyasını dinamik olarak kullanabilmek için
- 12. HTML2FPDF'de css dosyasını ekle
- 13. XHR dosyasını kaydetmek için javascript'i kullanma
- 14. Arama çubuğunu canlandırmak için animasyon nasıl kullanılır
- 15. DialogFragment'i canlandırmak mümkün mü?
- 16. CSS özniteliğini ayarlamak için jQuery'yi kullanma
- 17. CSS özel işaretçileri için harici görüntüleri kullanma
- 18. Sass, Compass, tüm CSS dosyasını bir
- 19. CSS calc'da otomatik kullanma
- 20. benim Tepki projede bir modülün css dosyasını
- 21. Metin dosyasını bir C dizesine dönüştürmek için sed öğesini kullanma
- 22. Veritabanına bir sql dosyasını içe aktarmak için Macunu Kullanma
- 23. Kerberos tarafından korunan bir HDFS dosyasını almak için Spark'i kullanma
- 24. Başka bir .cpp dosyasını çalıştırmak için sistem işlevini kullanma
- 25. Akıllı projede kesme noktalarını ayarlamak için Intellij özelliğini kullanma
- 26. İstemci uç noktaları oluşturmak için Castle WCfFacility özelliğini kullanma
- 27. Verileri geri dönmek için geri arama özelliğini kullanma dynamodb.getItem()
- 28. İki css özelliğini nasıl birbirine bağlarsınız?
- 29. Generics ile hazırda bekletme özelliğini kullanma
- 30. Mongoose ile belge özelliğini artırmak için $ inc'i kullanma
çok teşekkürler! Henüz her detayı anlamadığım halde, kodunuzu bir görüntünün opaklığını canlandıracak şekilde uyarlamayı başardım, ancak bunu CSS3 filtre özelliğini canlandırmak için kullanmakta sorun yaşıyorum. – Roland
Harika, başka bir css özelliği gibi bir filtreyi canlandırabilmeniz gerekir. geçiş: filtre 0.5s doğrusal; Bunu yapmak için javascript kullanmak istiyorsanız, o zaman bu yardımcı olabilir http://stackoverflow.com/questions/20082283/animate-css-blur-filter-in-jquery – r8n5n
Kimse seyir, şiir Sara tarafından ["Song" Teasdale] (http://www.bartleby.com/273/50.html) ve [bu özel kayıt LibriVox'tan geliyor] (https://librivox.org/short-poetry-collection-047/). – approxiblue