| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | 'use strict';// Create an instancevar wavesurfer;// Init & load audio filedocument.addEventListener('DOMContentLoaded', function () {    var options = {        container     : document.querySelector('#waveform'),        waveColor     : 'violet',        progressColor : 'purple',        cursorColor   : 'navy'    };    if (location.search.match('scroll')) {        options.minPxPerSec = 100;        options.scrollParent = true;    }    // Init    wavesurfer = WaveSurfer.create(options);    // Load audio from URL    wavesurfer.load('example/media/demo.wav');    // Regions    if (wavesurfer.enableDragSelection) {        wavesurfer.enableDragSelection({            color: 'rgba(0, 255, 0, 0.1)'        });    }});// Play at once when ready// Won't work on iOS until you touch the pagewavesurfer.on('ready', function () {    //wavesurfer.play();});// Report errorswavesurfer.on('error', function (err) {    console.error(err);});// Do something when the clip is overwavesurfer.on('finish', function () {    console.log('Finished playing');});/* Progress bar */document.addEventListener('DOMContentLoaded', function () {    var progressDiv = document.querySelector('#progress-bar');    var progressBar = progressDiv.querySelector('.progress-bar');    var showProgress = function (percent) {        progressDiv.style.display = 'block';        progressBar.style.width = percent + '%';    };    var hideProgress = function () {        progressDiv.style.display = 'none';    };    wavesurfer.on('loading', showProgress);    wavesurfer.on('ready', hideProgress);    wavesurfer.on('destroy', hideProgress);    wavesurfer.on('error', hideProgress);});// Drag'n'dropdocument.addEventListener('DOMContentLoaded', function () {    var toggleActive = function (e, toggle) {        e.stopPropagation();        e.preventDefault();        toggle ? e.target.classList.add('wavesurfer-dragover') :            e.target.classList.remove('wavesurfer-dragover');    };    var handlers = {        // Drop event        drop: function (e) {            toggleActive(e, false);            // Load the file into wavesurfer            if (e.dataTransfer.files.length) {                wavesurfer.loadBlob(e.dataTransfer.files[0]);            } else {                wavesurfer.fireEvent('error', 'Not a file');            }        },        // Drag-over event        dragover: function (e) {            toggleActive(e, true);        },        // Drag-leave event        dragleave: function (e) {            toggleActive(e, false);        }    };    var dropTarget = document.querySelector('#drop');    Object.keys(handlers).forEach(function (event) {        dropTarget.addEventListener(event, handlers[event]);    });});
 |