chiro-canto/public/scripts/wavesurfer/example/regions/app.js

67 lines
1.7 KiB
JavaScript
Raw Normal View History

2021-03-31 08:38:30 +02:00
'use strict';
// Create an instance
var wavesurfer;
// Init & load audio file
document.addEventListener('DOMContentLoaded', function() {
// Init
wavesurfer = WaveSurfer.create({
container: document.querySelector('#waveform'),
waveColor: '#A8DBA8',
progressColor: '#3B8686',
backend: 'MediaElement',
plugins: [
WaveSurfer.regions.create({
regionsMinLength: 2,
regions: [
{
start: 1,
end: 3,
loop: false,
color: 'hsla(400, 100%, 30%, 0.5)'
},
{
start: 5,
end: 7,
loop: false,
color: 'hsla(200, 50%, 70%, 0.4)',
minLength: 1
}
],
dragSelection: {
slop: 5
}
})
]
});
wavesurfer.on('error', function(e) {
console.warn(e);
});
// Load audio from URL
wavesurfer.load('../media/demo.wav');
document.querySelector(
'[data-action="play-region-1"]'
).addEventListener('click', function() {
let region = Object.values(wavesurfer.regions.list)[0];
region.play();
});
document.querySelector(
'[data-action="play-region-2"]'
).addEventListener('click', function() {
let region = Object.values(wavesurfer.regions.list)[1];
region.playLoop();
});
document.querySelector(
'[data-action="pause"]'
).addEventListener('click', function() {
wavesurfer.pause();
});
});