added audioplayer contrib module
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
// Create a WaveSurfer instance
|
||||
var wavesurfer;
|
||||
|
||||
|
||||
// Init on DOM ready
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
wavesurfer = WaveSurfer.create({
|
||||
container: '#waveform',
|
||||
waveColor: '#428bca',
|
||||
progressColor: '#31708f',
|
||||
height: 120,
|
||||
barWidth: 3
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Bind controls
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
var playPause = document.querySelector('#playPause');
|
||||
playPause.addEventListener('click', function () {
|
||||
wavesurfer.playPause();
|
||||
});
|
||||
|
||||
// Toggle play/pause text
|
||||
wavesurfer.on('play', function () {
|
||||
document.querySelector('#play').style.display = 'none';
|
||||
document.querySelector('#pause').style.display = '';
|
||||
});
|
||||
wavesurfer.on('pause', function () {
|
||||
document.querySelector('#play').style.display = '';
|
||||
document.querySelector('#pause').style.display = 'none';
|
||||
});
|
||||
|
||||
|
||||
// The playlist links
|
||||
var links = document.querySelectorAll('#playlist a');
|
||||
var currentTrack = 0;
|
||||
|
||||
// Load a track by index and highlight the corresponding link
|
||||
var setCurrentSong = function (index) {
|
||||
links[currentTrack].classList.remove('active');
|
||||
currentTrack = index;
|
||||
links[currentTrack].classList.add('active');
|
||||
wavesurfer.load(links[currentTrack].href);
|
||||
};
|
||||
|
||||
// Load the track on click
|
||||
Array.prototype.forEach.call(links, function (link, index) {
|
||||
link.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
setCurrentSong(index);
|
||||
});
|
||||
});
|
||||
|
||||
// Play on audio load
|
||||
wavesurfer.on('ready', function () {
|
||||
wavesurfer.play();
|
||||
});
|
||||
|
||||
// Go to the next track on finish
|
||||
wavesurfer.on('finish', function () {
|
||||
setCurrentSong((currentTrack + 1) % links.length);
|
||||
});
|
||||
|
||||
// Load the first track
|
||||
setCurrentSong(currentTrack);
|
||||
});
|
||||
Reference in New Issue
Block a user