一、video
1.1 video支持視頻格式
常見的視頻格式
HTML5支持的視頻格式:
1、Ogg
帶有Theora視頻編碼+Vorbis音頻編碼的Ogg文件
支持的瀏覽器:F、C、O
2、MEPG4
帶有H.264視頻編碼+AAC音頻編碼的MPEG4文件
支持的瀏覽器: S、C
3、WebM
帶有VP8視頻編碼+Vorbis音頻編碼的WebM格式
支持的瀏覽器: I、F、C、O
劣勢:視頻少、轉碼器幾乎沒有,不好轉碼
想要video能自動填充慢父div的大小,只要給video標簽加上style="width= 100%; height=100%; object-fit: fill"即可
1.2 標簽原型
指定一種視頻格式,不能播就提示
<video id="media" src="examp.mp4" width="500" poster="examp1.jpg" >您的瀏覽器不支持video</video>
給定多種視頻格式,瀏覽器根據自身支持程度選擇播放哪一種
注意:多個source標簽,瀏覽器會從第一個開始識別,如果第一個不被識別,則會繼續識別第二個;如果第一個識別成功,則會直接播放第一種格式視頻
<video controls = “controls”> <source src=”1.mp4” type=”video/mp4” /> //src屬性寫到source標簽中,要指定視頻的type類型,例如MP4的即為type=“video/mp4” <source src = “2.ogg” type=”video/ogg” /> //ogg格式 <source src=”3.webm” type=”video/webm” /> //webm格式</video>
1.3 重要的video標簽屬性
| 屬性(常用) | 值 | 功能描述 |
|---|---|---|
| controls | controls | 是否顯示播放控件 |
| autoplay | autoplay | 設置是否打開瀏覽器后自動播放 |
| width | Pilex(像素) | 設置播放器的寬度 |
| height | Pilex(像素) | 設置播放器的高度 |
| loop | loop | 設置視頻是否循環播放(即播放完后繼續重新播放) |
| preload | preload | 設置是否等加載完再播放 |
| src | url | 設置要播放視頻的url地址 |
| poster | imgurl | 設置播放器初始默認顯示圖片 |
| autobuffer | autobuffer | 設置為瀏覽器緩沖方式,不設置autoply才有效 |
API 屬性
| 屬性 | 描述 |
|---|---|
| audioTracks | 返回表示可用音軌的 AudioTrackList 對象 |
| buffered | 返回表示音頻/視頻已緩沖部分的 TimeRanges 對象 |
| controller | 返回表示音頻/視頻當前媒體控制器的 MediaController 對象 |
| crossOrigin | 設置或返回音頻/視頻的 CORS 設置 |
| currentSrc | 返回當前音頻/視頻的 URL |
| currentTime | 設置或返回音頻/視頻中的當前播放位置(以秒計) |
| defaultMuted | 設置或返回音頻/視頻默認是否靜音 |
| defaultPlaybackRate | 設置或返回音頻/視頻的默認播放速度 |
| duration | 返回當前音頻/視頻的長度(以秒計) |
| ended | 返回音頻/視頻的播放是否已結束 |
| error | 返回表示音頻/視頻錯誤狀態的 MediaError 對象 |
| mediaGroup | 設置或返回音頻/視頻所屬的組合(用于連接多個音頻/視頻元素) |
| muted | 設置或返回音頻/視頻是否靜音 |
| networkState | 返回音頻/視頻的當前網絡狀態 |
| paused | 設置或返回音頻/視頻是否暫停 |
| playbackRate | 設置或返回音頻/視頻播放的速度 |
| played | 返回表示音頻/視頻已播放部分的 TimeRanges 對象 |
| readyState | 返回音頻/視頻當前的就緒狀態 |
| seekable | 返回表示音頻/視頻可尋址部分的 TimeRanges 對象 |
| seeking | 返回用戶是否正在音頻/視頻中進行查找 |
| startDate | 返回表示當前時間偏移的 Date 對象 |
| textTracks | 返回表示可用文本軌道的 TextTrackList 對象 |
| videoTracks | 返回表示可用視頻軌道的 VideoTrackList 對象 |
| volume | 設置或返回音頻/視頻的音量 |
1.4 Video API
1.4.1 Video 方法
| API | 事件說明 |
|---|---|
| play | video.play(); 播放視頻 |
| pause | video.pause(); 暫停播放視頻 |
| load | video.load(); 將全部屬性回復默認值,視頻恢復重新開始狀態 |
| canPlayType | var support = videoid.canPlayType(‘video/mp4′); 判斷瀏覽器是否支持當前類型的視頻格式 返回值: 空字符串:不支持Maybe:可能支持Probably:完全支持 |
常用方法
1.4.2網絡狀態
獲取video對象
Media = document.getElementById("media");1.Media.currentSrc;
返回當前資源的URL
2.Media.src = value;
返回或設置當前資源的URL
3.Media.canPlayType(type);
是否能播放某種格式的資源
4.Media.networkState;
0.此元素未初始化
1.正常但沒有使用網絡
2.正在下載數據
3.沒有找到資源
5.Media.load();
重新加載src指定的資源
6.Media.buffered;
返回已緩沖區域,TimeRanges
7.Media.preload;
none:不預載
metadata:預載資源信息
auto:
1.4.3 準備狀態
1.Media.readyState
2.Media.seeking;
是否正在seeking
1.4.4 回放狀態
1.Media.currentTime = value;
當前播放的位置,賦值可改變位置
2.Media.startTime;
一般為0,如果為流媒體或者不從0開始的資源,則不為0
3.Media.duration;
當前資源長度 流返回無限
4.Media.paused;
是否暫停
5.Media.defaultPlaybackRate = value;
默認的回放速度,可以設置
6.Media.playbackRate = value;
當前播放速度,設置后馬上改變
7.Media.played;
返回已經播放的區域,TimeRanges,關于此對象見下文
8.Media.seekable;
返回可以seek的區域 TimeRanges
9.Media.ended;
是否結束
10.Media.autoPlay;
是否自動播放
11.Media.loop;
是否循環播放
12.Media.play();
播放
13.Media.pause();
暫停
1.4.5 視頻控制
1.4.6 相關事件
1.首先綁定事件的話可以通過js中的addEventListener方法來綁定事件
| 事件 | 說明 |
|---|---|
| loadstart | 客戶端開始請求數據 |
| progress | 客戶端正在請求數據 |
| suspend | 延遲下載 |
| abort | 客戶端主動終止下載(不是因為錯誤引起) |
| loadstart | 客戶端開始請求數據 |
| progress | 客戶端正在請求數據 |
| error | 請求數據時遇到錯誤 |
| stalled | 網速失速 |
| play | play()和autoplay開始播放時觸發 |
| pause | pause()觸發 |
| loadedmetadata | 成功獲取資源長度 |
| loadeddata | - |
| waiting | 等待數據,并非錯誤 |
| playing | 開始回放 |
| canplay | 可以播放,但中途可能因為加載而暫停 |
| canplaythrough | 可以播放,歌曲全部加載完畢 |
| seeking | 尋找中 |
| seeked | 尋找完畢 |
| timeupdate | 播放時間改變 |
| ended | 播放結束 |
| ratechange | 播放速率改變 |
| durationchange | 資源長度改變 |
| volumechange | 音量改變 |
2.常用事件
1.4.7 其他
1.全屏:
2.退出全屏:
二、audio
2.1 audio格式
1.常見的音頻格式
音頻編碼:ACC、MP3、Vorbis
2.HTML5支持的音頻格式:
2.2 audio標簽中的一些常用屬性
| 屬性 | 屬性值 | 注釋 |
|---|---|---|
| src | url | 播放的音樂的url地址(火狐只支持ogg的音樂,而IE9只支持MP3格式的音樂。chrome貌似全支持) |
| preload | preload | 預加載(在頁面被加載時進行加載或者說緩沖音頻),如果使用了autoplay的話那么該屬性失效。 |
| loop | loop | 循環播放 |
| controls | controls | 是否顯示默認控制條(控制按鈕) |
| autoplay | autoplay | 自動播放 |
對于音樂格式的支持
| 音頻格式 | Chrome | Firefox | IE9 | Opera | Safari |
|---|---|---|---|---|---|
| OGG | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| MP3 | 支持 | 不支持 | 支持 | 不支持 | 支持 |
| WAV | 不支持 | 支持 | 不支持 | 支持 | 不支持 |
audio可通過new來創建。也可以通過用document來獲取
//通過new關鍵字來創建Audio對象var Music = new Audio("test.mp3");//通過document來獲取已經存在的Audio對象var Music = document.getElementById("audio");//當然這里也可以使用document.getElementsByClassName('className')等其他的方法來獲取。2.3 api所提供的對audio標簽操作的一些屬性和方法
| 屬性 | 注釋 |
|---|---|
| duration | 獲取媒體文件的總時長,以s為單位,如果無法獲取,返回NaN |
| paused | 如果媒體文件被暫停,那么paused屬性返回true,反之則返回false |
| ended | 如果媒體文件播放完畢返回true |
| muted | 用來獲取或設置靜音狀態。值為boolean |
| volume | 控制音量的屬性值為0-1;0為音量最小,1為音量最大 |
| startTime | 返回起始播放時間 |
| error | 返回錯誤代碼,為uull的時候為正常。否則可以通過Music.error.code來獲取 |
| currentTime | 用來獲取或控制當前播放的時間,單位為s。 |
| currentSrc | 以字符串形式返回正在播放或已加載的文件 |
2.4 常用的控制用的函數
| 函數 | 作用 |
|---|---|
| load() | 加載音頻、視頻軟件 |
| play() | 加載并播放音頻、視頻文件或重新播放暫停的的音頻、視頻 |
| pause() | 暫停出于播放狀態的音頻、視頻文件 |
| canPlayType(obj) | 測試是否支持給定的Mini類型的文件 |
2.5 audio標簽API中的常用事件
首先綁定事件的話可以通過js中的addEventListener方法來綁定事件
| 事件名稱 | 事件作用 |
|---|---|
| loadstart | 客戶端開始請求數據 |
| progress | 客戶端正在請求數據(或者說正在緩沖) |
| play | play()和autoplay播放時 |
| pause | pause()方法促發時 |
| ended | 當前播放結束 |
| timeupdate | 當前播放時間發生改變的時候。播放中常用的時間處理 |
| canplaythrough | 歌曲已經載入完全完成 |
| canplay | 緩沖至目前可播放狀態。 |
其實video的api和audio幾乎一致。稍稍有點不同。所以基本上會了一個其他的也就都會了
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。
新聞熱點
疑難解答