123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- 'use strict';
- var wavesurfer;
- // Init & load
- document.addEventListener('DOMContentLoaded', function () {
- var pluginOptions = {
- minimap: {
- waveColor : '#777',
- progressColor : '#222',
- height: 30
- },
- timeline: {
- container: '#wave-timeline'
- },
- spectrogram: {
- container: '#wave-spectrogram'
- },
- regions: {
- regions: [
- {
- start: 1,
- end: 3,
- color: 'hsla(400, 100%, 30%, 0.5)'
- },
- {
- start: 4,
- end: 5.4
- },
- {
- start: 6.22,
- end: 7.1
- }
- ]
- },
- elan: {
- url: '../elan/transcripts/001z.xml',
- container: '#annotations',
- tiers: {
- Text: true,
- Comments: true
- }
- }
- };
- var options = {
- container : '#waveform',
- waveColor : 'violet',
- progressColor : 'purple',
- loaderColor : 'purple',
- cursorColor : 'navy',
- plugins: [
- WaveSurfer.minimap.create(pluginOptions.minimap)
- ]
- };
- if (location.search.match('scroll')) {
- options.minPxPerSec = 100;
- options.scrollParent = true;
- }
- if (location.search.match('normalize')) {
- options.normalize = true;
- }
- // Init wavesurfer
- wavesurfer = WaveSurfer.create(options);
- [].forEach.call(document.querySelectorAll('[data-activate-plugin]'), function (el) {
- var activePlugins = wavesurfer.initialisedPluginList;
- Object.keys(activePlugins).forEach(function(name) {
- if (el.dataset.activatePlugin === name) {
- el.checked = true;
- }
- });
- });
- [].forEach.call(document.querySelectorAll('[data-activate-plugin]'), function (el) {
- el.addEventListener('change', function (e) {
- var pluginName = e.currentTarget.dataset.activatePlugin;
- var activate = e.target.checked;
- var options = pluginOptions[pluginName] || {};
- var plugin = WaveSurfer[pluginName].create(options);
- if (activate) {
- wavesurfer.addPlugin(plugin).initPlugin(pluginName);
- } else {
- wavesurfer.destroyPlugin(pluginName);
- }
- });
- });
- /* Progress bar */
- (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);
- }());
- wavesurfer.load('../media/demo.wav');
- });
|