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