常見的視頻格式
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.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.退出全屏:
1.常見的音頻格式
音頻編碼:ACC、MP3、Vorbis
2.HTML5支持的音頻格式:
屬性 | 屬性值 | 註釋 |
---|---|---|
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 | 以字符串形式返回正在播放或已加載的文件 |
函數 | 作用 |
---|---|
load() | 加載音頻、視頻軟件 |
play() | 加載並播放音頻、視頻文件或重新播放暫停的的音頻、視頻 |
pause() | 暫停出於播放狀態的音頻、視頻文件 |
canPlayType(obj) | 測試是否支持給定的Mini類型的文件 |
首先綁定事件的話可以通過js中的addEventListener方法來綁定事件
事件名稱 | 事件作用 |
---|---|
loadstart | 客戶端開始請求數據 |
progress | 客戶端正在請求數據(或者說正在緩衝) |
play | play()和autoplay播放時 |
pause | pause()方法促發時 |
ended | 當前播放結束 |
timeupdate | 當前播放時間發生改變的時候。播放中常用的時間處理 |
canplaythrough | 歌曲已經載入完全完成 |
canplay | 緩衝至目前可播放狀態。 |
其實video的api和audio幾乎一致。稍稍有點不同。所以基本上會了一個其他的也就都會了
總結以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。