-
-
Notifications
You must be signed in to change notification settings - Fork 54
/
plugin.html
109 lines (95 loc) · 3.12 KB
/
plugin.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Plugin Example - Wavesurfer Plugin for Video.js</title>
<link href="//unpkg.com/video.js@7.21.1/dist/video-js.min.css" rel="stylesheet">
<link href="//unpkg.com/videojs-wavesurfer/dist/css/videojs.wavesurfer.min.css" rel="stylesheet">
<script src="//unpkg.com/video.js@7.21.1/dist/video.min.js"></script>
<script src="//unpkg.com/wavesurfer.js@6.6.4/dist/wavesurfer.min.js"></script>
<script src="//unpkg.com/wavesurfer.js@6.6.4/dist/plugin/wavesurfer.timeline.min.js"></script>
<script src="//unpkg.com/wavesurfer.js@6.6.4/dist/plugin/wavesurfer.regions.min.js"></script>
<script src="//unpkg.com/videojs-wavesurfer/dist/videojs.wavesurfer.min.js"></script>
<style>
/* change player background color */
#myAudio {
background-color: #9FE87B;
}
</style>
</head>
<body>
<audio id="myAudio" class="video-js vjs-default-skin"></audio>
<div id="wave-timeline"></div>
<script>
// use mp3 for IE11 support
let src = {src: 'media/hal.mp3', type: 'audio/mpeg'};
if (!document.getElementById('myAudio').canPlayType('audio/mpeg;')) {
// fallback with wav
src = {src: 'media/hal.wav', type: 'audio/wav'};
}
const options = {
controls: true,
autoplay: false,
loop: false,
fluid: false,
width: 600,
height: 300,
bigPlayButton: false,
plugins: {
wavesurfer: {
backend: 'MediaElement',
displayMilliseconds: true,
debug: true,
waveColor: 'white',
progressColor: 'black',
cursorColor: 'black',
hideScrollbar: true,
plugins: [
// timeline
WaveSurfer.timeline.create({
container: '#wave-timeline'
}),
// regions
WaveSurfer.regions.create({
regions: [
{
start: 1.123,
end: 5,
color: 'rgba(123, 159, 232, 0.7)',
drag: false
}, {
start: 6.5,
end: 8,
color: 'rgba(232, 123, 159, 0.6)',
drag: false
}
]
})
]
}
}
};
// create player
let player = videojs('myAudio', options, function() {
// print version information at startup
const msg = 'Using video.js ' + videojs.VERSION +
' with videojs-wavesurfer ' +
videojs.getPluginVersion('wavesurfer') +
' and wavesurfer.js ' + WaveSurfer.VERSION;
videojs.log(msg);
// load file
player.src(src);
});
player.on('waveReady', function(event) {
console.log('waveform: ready!');
});
player.on('playbackFinish', function(event) {
console.log('playback finished.');
});
// error handling
player.on('error', function(element, error) {
console.warn('ERROR:', error);
});
</script>
</body>
</html>