@@ -118,7 +118,36 @@ var song = new Audio([URLString]);
118118生成` HTMLAudioElement ` 实例以后,不用插入 DOM,可以直接用` play() ` 方法在背景播放。
119119
120120``` javascript
121- var flush = new Audio (' flush.wav' );
122- flush .play ();
123- ```
124-
121+ var a = new Audio ();
122+ if (a .canPlayType (' audio/wav' )) {
123+ a .src = ' soundeffect.wav' ;
124+ a .play ();
125+ }
126+ ```
127+
128+ ## 事件
129+
130+ ` <video> ` 和` <audio> ` 元素有以下事件。
131+
132+ - loadstart:开始加载媒体文件时触发。
133+ - progress:媒体文件加载过程中触发,大概是每秒触发2到8次。
134+ - loadedmetadata:媒体文件元数据加载成功时触发。
135+ - loadeddata:当前播放位置加载成功后触发。
136+ - canplay:已经加载了足够的数据,可以开始播放时触发,后面可能还会请求数据。
137+ - canplaythrough:已经加载了足够的数据,可以一直播放时触发,后面不需要继续请求数据。
138+ - suspend:已经缓冲了足够的数据,暂时停止下载时触发。
139+ - stalled:尝试加载数据,但是没有数据返回时触发。
140+ - play:调用` play() ` 方法时或自动播放启动时触发。如果已经加载了足够的数据,这个事件后面会紧跟` playing ` 事件,否则会触发` waiting ` 事件。
141+ - waiting:由于没有足够的缓存数据,无法播放或播放停止时触发。一旦缓冲数据足够开始播放,后面就会紧跟` playing ` 事件。
142+ - playing:媒体开始播放时触发。
143+ - timeupdate:` currentTime ` 属性变化时触发,每秒可能触发4到60次。
144+ - pause:调用` pause() ` 方法、播放暂停时触发。
145+ - seeking:脚本或者用户要求播放某个没有缓冲的位置,播放停止开始加载数据时触发。此时,` seeking ` 属性返回` true ` 。
146+ - seeked:` seeking ` 属性变回` false ` 时触发。
147+ - ended:媒体文件播放完毕时触发。
148+ - durationchange:` duration ` 属性变化时触发。
149+ - volumechange:音量变回或者静音时触发。
150+ - ratechange:播放速度或默认的播放速度变化时触发。
151+ - abort:停止加载媒体文件时触发,通常是用户主动要求停止下载。
152+ - error:网络或其他原因导致媒体文件无法加载时触发。
153+ - emptied:由于` error ` 或` abort ` 事件导致` networkState ` 属性变成无法获取数据时触发。
0 commit comments