1+ <!-- Assumes there is bbb.mp4 -->
2+ <!DOCTYPE html>
3+ < html lang ="en ">
4+ < head >
5+ < title > Chapter 15</ title >
6+ </ head >
7+ < body >
8+ < div >
9+ < button id ="playbackController "> Play</ button >
10+ < button id ="muteController "> Mute</ button >
11+ <!--Exercise 1-->
12+ < p > Volume: </ p >
13+ < input type ="range " id ="volume " min ="0.0 " max ="1.0 " step ="0.1 " />
14+ <!--Exercise 2-->
15+ < br />
16+ < p > Seek: </ p >
17+ < input type ="range " id ="seek " min ="0.0 " max ="1.0 " step ="0.1 " value ="0 "/>
18+ </ div >
19+ < video id ="bbbVideo ">
20+ < source src ="bbb.mp4 " />
21+ < source src ="bbb.webm " />
22+ </ video >
23+ < script >
24+ function pauseHandler ( e ) {
25+ playButton . innerHTML = "Resume" ;
26+ }
27+ function playingHandler ( e ) {
28+ playButton . innerHTML = "Pause" ;
29+ }
30+ function volumechangeHandler ( e ) {
31+ muteButton . innerHTML = video . muted ? "Unmute" : "Mute" ;
32+ }
33+ function playbackClick ( e ) {
34+ video . paused ? video . play ( ) : video . pause ( ) ;
35+ }
36+ function muteClick ( e ) {
37+ video . muted = ! video . muted ;
38+ }
39+ var video = document . getElementById ( "bbbVideo" ) ;
40+ var playButton = document . getElementById ( "playbackController" ) ;
41+ var muteButton = document . getElementById ( "muteController" ) ;
42+ video . addEventListener ( "pause" , pauseHandler ) ;
43+ video . addEventListener ( "playing" , playingHandler ) ;
44+ video . addEventListener ( "volumechange" , volumechangeHandler ) ;
45+ playButton . addEventListener ( "click" , playbackClick ) ;
46+ muteButton . addEventListener ( "click" , muteClick ) ;
47+ // Exercise 1
48+ var volume = document . getElementById ( "volume" ) ;
49+ function changeVolume ( e ) {
50+ video . volume = volume . value ;
51+ }
52+ volume . addEventListener ( "change" , changeVolume ) ;
53+ // Exercise 2
54+ var seek = document . getElementById ( "seek" ) ;
55+ seek . max = video . duration ;
56+ function updateMax ( e ) {
57+ seek . max = video . duration ;
58+ }
59+ function updateTime ( e ) {
60+ seek . value = video . currentTime ;
61+ }
62+ function changeTime ( e ) {
63+ video . currentTime = seek . value ;
64+ }
65+ seek . addEventListener ( "change" , changeTime ) ;
66+ video . addEventListener ( "durationchange" , updateMax ) ;
67+ video . addEventListener ( "timeupdate" , updateTime ) ;
68+ </ script >
69+ </ body >
70+ </ html >
0 commit comments