## 第四節:事件
`<video>`和`<audio>`元素有以下事件。
* `loadstart`:開始加載媒體文件時觸發。
* `progress`:媒體文件加載過程中觸發,大概是每秒觸發2到8次。
* `loadedmetadata`:媒體文件元數據加載成功時觸發。
* `loadeddata`:當前播放位置加載成功后觸發。
* `canplay`:已經加載了足夠的數據,可以開始播放時觸發,后面可能還會請求數據。
* `canplaythrough`:已經加載了足夠的數據,可以一直播放時觸發,后面不需要繼續請求數據。
* `suspend`:已經緩沖了足夠的數據,暫時停止下載時觸發。
* `stalled`:嘗試加載數據,但是沒有數據返回時觸發。
* `play`:調用`play()`方法時或自動播放啟動時觸發。如果已經加載了足夠的數據,這個事件后面會緊跟`playing`事件,否則會觸發`waiting`事件。
* `waiting`:由于沒有足夠的緩存數據,無法播放或播放停止時觸發。一旦緩沖數據足夠開始播放,后面就會緊跟`playing`事件。
* `playing`:媒體開始播放時觸發。
* `timeupdate`:`currentTime`屬性變化時觸發,每秒可能觸發4到60次。
* `pause`:調用`pause()`方法、播放暫停時觸發。
* `seeking`:腳本或者用戶要求播放某個沒有緩沖的位置,播放停止開始加載數據時觸發。此時,`seeking`屬性返回`true`。
* `seeked`:`seeking`屬性變回`false`時觸發。
* `ended`:媒體文件播放完畢時觸發。
* `durationchange`:`duration`屬性變化時觸發。
* `volumechange`:音量變回或者靜音時觸發。
* `ratechange`:播放速度或默認的播放速度變化時觸發。
* `abort`:停止加載媒體文件時觸發,通常是用戶主動要求停止下載。
* `error`:網絡或其他原因導致媒體文件無法加載時觸發。
* `emptied`:由于`error`或`abort`事件導致`networkState`屬性變成無法獲取數據時觸發。
- 第一章:音視頻
- 第一節:概述
- 第二節:媒體元素
- 第三節:視頻元素
- 第四節:音頻元素
- 第四節:事件
- 第二章:高德地圖
- 第三章:Storage 接口
- 第一節:概述
- 第二節:屬性和方法
- 第三節:事件
- 第四章:IndexedDB
- 第一節:概述
- 第二節:基本概念
- 第三節:indexedDB 對象
- 第四節:IDBRequest 對象
- 第五節:IDBDatabase 對象
- 第六節:IDBObjectStore 對象
- 第七節:IDBTransaction 對象
- 第八節:IDBIndex 對象
- 第九節:IDBCursor 對象
- 第十節:IDBKeyRange 對象
- 第十一節:操作流程
- 第五章:Canvas
- 第一節:概述
- 第二節:繪制圖像
- 第一課時:路徑
- 第二課時:線型
- 第三課時:矩形
- 第四課時:弧線
- 第五課時:文本
- 第六課時:漸變色和圖像填充
- 第七課時:陰影
- 第三節:圖像處理
- 第一課時:寫入圖像
- 第二課時:像素讀寫
- 第三課時:保存和恢復
- 第四課時:畫布
- 第五課時:圖像變換
- 第四節:元素方法
- 第一課時:toDataURL()
- 第二課時:toBlob()
- 第五節:使用實例
- 第一課時:動畫效果
- 第二課時:像素處理