HTML中的音頻和視頻
瀏覽量:2508
-
HTML5的audio和video元素代表這音頻你和視頻。這里有兩個(gè)概念需要先理解一下。
視頻容器:這里有個(gè)封裝的概念。封裝了音頻軌道、視頻軌道、元數(shù)據(jù)(視頻封面、標(biāo)題、子標(biāo)題、字幕)。主流視頻容器支持以下格式的視頻文件:.avi、.flv、.mp4、.mkv和.ogg。
音頻和視頻編解碼器:一組用來(lái)對(duì)音頻和視頻編碼、解碼以便能正常播放的算法。主流音頻編解碼器:AAC、MPEG-3和Ogg Vorbis。主流視頻編解碼器:H.264、VP8和Ogg Theora。
目前除IE以外的主流瀏覽器都支持audio和video。 -
使用HTML5audio和video的優(yōu)勢(shì):
瀏覽器自帶,因而無(wú)需安裝。
更容易通過(guò)腳本來(lái)控制和播放內(nèi)容。
缺點(diǎn)是:缺少通用編解碼器支持。 - 通過(guò)腳本進(jìn)行兼容性檢測(cè)。
var hasVideo=!!(document.createElement('vedio').canPlayType);
這段腳本會(huì)動(dòng)態(tài)創(chuàng)建vedio元素,然后檢查canPlayType()函數(shù)是否存在。通過(guò)“!!”將結(jié)果轉(zhuǎn)換為布爾值。如果檢測(cè)結(jié)果是當(dāng)前瀏覽器不支持該元素,則需要觸發(fā)另外一套腳本向頁(yè)面中引入媒體標(biāo)簽。可以把Flash等插件方式播放放到<video>備選代碼</video>中。
<video src="video.ogg">
<object data="videoplayer.swf"type="application/x-shockwave-flash">
<param name="movie"value="video.swf"/>
</object>
</video>
-
如果不使用contros特性怎么讓媒體文件正常播放呢?可以設(shè)置成這樣:<audio autoplay></audio>,效果是當(dāng)媒體文件加載完成后自動(dòng)播放。不過(guò)大部分用戶對(duì)此比較反感。還有一種比較好的方式是用js控制播放。
(1)常用控制函數(shù)
load():通常不必調(diào)用。除非是動(dòng)態(tài)生成的元素,用來(lái)在播放前預(yù)加載。
play():除非音頻/視頻已經(jīng)暫停在其他位置,否則重頭播放。
pause():暫停播放。
canPlayType():測(cè)試video元素是否支持給定MIME類(lèi)型的文件。下面的代碼可以快速判斷是否支持fooType類(lèi)型播放。
1varsupportsFoolVideo=!!(document.createElement('video').canPlayType('fooType'));
(2)部分只讀特性
duration:整個(gè)媒體文件的播放時(shí)長(zhǎng)(s),無(wú)法獲取返回NaN。
paused:如果媒體文件當(dāng)前被暫停,返回true,否則返回false。
ended:如果媒體文件已經(jīng)播放完畢,返回true。
startTime:返回最早的播放時(shí)間,一般是0.0,除非是緩沖過(guò)的媒體文件,并且一部分內(nèi)容已經(jīng)不再緩沖區(qū)。
error:在發(fā)生錯(cuò)誤的時(shí)候返回錯(cuò)誤代碼。
currentSrc:以字符串的形式返回當(dāng)前正在播放或已經(jīng)加載的文件。
(3)部分可被腳本修改并直接影響播放的媒體元素特性
autoplay:將媒體文件設(shè)置為創(chuàng)建后自動(dòng)播放,或者查詢是否已經(jīng)設(shè)置為autoplay。
loop:設(shè)置為true表示循環(huán)播放。或者查詢。
currentTime:返回從開(kāi)始播放到現(xiàn)在所用的時(shí)間。在播放過(guò)程中,設(shè)置currentTime來(lái)進(jìn)行搜索,并定位到媒體文件的特定位置。
controls:顯示或隱藏用戶控制界面,或者查詢。
volume:從0.0到1.0之間設(shè)置音量大小,或者查詢。
muted:設(shè)置或消除靜音,或者查詢。
autobuffer:通知播放器在媒體文件開(kāi)始播放前,是否進(jìn)行緩沖加載。如果媒體文件已經(jīng)設(shè)置了autoplay則忽略此設(shè)置。
video比audio多了一些特性:
poster:在視頻加載完成之前,代表視頻內(nèi)容圖片URL地址。類(lèi)似于電影海報(bào)。該特性可讀寫(xiě)。
width、height:讀寫(xiě)視頻尺寸。
videoWidth、videoHeight:返回視頻的固有或自適應(yīng)寬度和高度。只讀。
除了這些之外,video還有一個(gè)audio不支持的特性:抓取圖像幀。這里要與Canvas一起使用。使用drawImage()方法。
CRM定制 辦公OA找沈陽(yáng)易勢(shì)科技有限公司
下一篇:js級(jí)聯(lián)