67 lines
1.7 KiB
JavaScript
67 lines
1.7 KiB
JavaScript
|
'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();
|
||
|
});
|
||
|
});
|