今天在使用video播放本地視頻時(shí),遇到問(wèn)題,進(jìn)度條能移動(dòng),有聲音,但是沒(méi)有圖像。
成都創(chuàng)新互聯(lián)始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過(guò)多達(dá)十多年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)整合營(yíng)銷推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:成都混凝土攪拌罐車等企業(yè),備受客戶認(rèn)可。
網(wǎng)上查找了很多資料,各種方法都嘗試了,包括使用video.js插件,也是出現(xiàn)同樣的問(wèn)題,后來(lái)有一篇文章給出了解決方法:
可以使用格式工廠轉(zhuǎn)換視頻格式,mp4的視頻編碼有三種:MPEG4(DivX),MPEG4(Xvid),AVC(H264),轉(zhuǎn)換成AVC(H264)編碼,就能正常播放。
原文地址:
1、video src="hangge.mp4" controls/video1
2,通過(guò)width和height設(shè)置視頻窗口大小
video src="hangge.mp4" controls width="400" height="300"/video1
3,預(yù)加載媒體文件
設(shè)置preload不同的屬性值,可以告訴瀏覽器應(yīng)該怎樣加載一個(gè)媒體文件:
(1)值為auto:讓瀏覽器自動(dòng)下載整個(gè)文件
(2)值為none:讓瀏覽器不必預(yù)先下載文件
(3)值為metadata:讓瀏覽器先獲取視頻文件開(kāi)頭的數(shù)據(jù)塊,從而足以確定一些基本信息(比如視頻的總時(shí)長(zhǎng),第一幀圖像等)
!-- 用戶點(diǎn)擊播放才開(kāi)始下載 --video src="hangge.mp4" controls preload="none"/video12
4,自動(dòng)播放
(1)使用autoplay屬性可以讓瀏覽器加載完視頻文件后立即播放。
video src="hangge.mp4" controls autoplay/video1
(2)如果啟用自動(dòng)播放,可以將播放器設(shè)置為muted狀態(tài)。這樣自動(dòng)播放時(shí)會(huì)靜音,防止用戶厭煩。用戶需要的話可以點(diǎn)擊播放器揚(yáng)聲器圖標(biāo)重新打開(kāi)聲音。
video src="hangge.mp4" controls autoplay muted/video1
5,循環(huán)播放
使用loop屬性讓視頻播放結(jié)束時(shí),再?gòu)念^開(kāi)始播放。
video src="hangge.mp4" controls loop/video1
6,設(shè)置替換視頻的圖片(封面圖片)
通過(guò)poster屬性可以設(shè)置,瀏覽器在下面三種情況下會(huì)使用這個(gè)圖片:
(1)視頻第一幀未加載完畢
(2)把preload屬性設(shè)置為none
(3)沒(méi)有找到指定的視頻文件
video src="hangge.mp4" controls poster="hangge.png"/video1
7,瀏覽器兼容,如何讓每一個(gè)瀏覽器都能順利播放視頻
現(xiàn)在大部分瀏覽器都能支持H.264格式的視頻,但Opera瀏覽器卻一直不支持。我們需要通過(guò)后備措施保證每個(gè)人都能看到視頻,通常有下面幾種方案:
(1)使用多種視頻格式
video和audio元素有個(gè)內(nèi)置的格式后備系統(tǒng)。我們不使用src屬性,而是在其內(nèi)部嵌套一組source元素,瀏覽器會(huì)選擇播放第一個(gè)它所支持的文件。
我們可以添加WebM格式的視頻提供對(duì)Opera的支持。
video controls
source src="hangge.mp4" type="video/mp4"
source src="hangge.webm" type="video/webm"
/video1234
(2)添加Flash后備措施(推薦)
上面那個(gè)方法不推薦,應(yīng)為Opera瀏覽器只占不到1%的份額。特意為它把視頻都轉(zhuǎn)碼一邊太費(fèi)事。使用Flash作為備用播放方案還是很方便的,同時(shí)Flash還能兼容IE8這種連video元素都不支持的老瀏覽器。
這里使用Flowplayer Flash作為備用播放器(本地下載 :flowplayer-3.2.18.zip)
video controls
source src="hangge.mp4" type="video/mp4"
source src="hangge.webm" type="video/webm"
object id="flowplayer" width="400" height="300"
data="flowplayer-3.2.18.swf"
type="application/x-shockwave-flash"
param name="movie" value="flowplayer-3.2.18.swf"
param name="flashvars" value='config={"clip":"hangge.mp4"}'
/object
/video1234567891011
(3)也有人優(yōu)先使用Flash,而HTML5作為后備措施。
這么做是因?yàn)镕lash普及率比較高,而HTML5作為后備可以擴(kuò)展iPad和iPhone用戶
object id="flowplayer" width="400" height="300" data="flowplayer-3.2.18.swf" type="application/x-shockwave-flash"
param name="movie" value="flowplayer-3.2.18.swf"
param name="flashvars" value='config={"clip":"hangge.mp4"}'
video controls
source src="hangge.mp4" type="video/mp4"
source src="hangge.webm" type="video/webm"
/video
/object
我們使用html5的video標(biāo)簽,可以不依賴于任何第三方的插件或控件,直接在瀏覽器中實(shí)現(xiàn)視頻播放功能。
在了解了video標(biāo)簽之后,下面我們就使用html5的video標(biāo)簽來(lái)實(shí)現(xiàn)視頻播放。
現(xiàn)在,我們打開(kāi)瀏覽器,看一看具體的效果:
為了更好地兼容各種瀏覽器,你可以為一個(gè)video標(biāo)簽添加多個(gè)source子標(biāo)簽,每個(gè)source標(biāo)簽引用一個(gè)不同格式的視頻文件。這樣,html5瀏覽器會(huì)自動(dòng)在這些source標(biāo)簽中從上到下依次尋找并識(shí)別出該瀏覽器可以播放的第一個(gè)視頻文件并進(jìn)行播放,從而實(shí)現(xiàn)兼容多個(gè)瀏覽器的視頻播放功能。
注:html5的video標(biāo)簽?zāi)壳爸恢С植シ?mp4、.ogg、.webm等幾種格式的視頻文件,暫不支持其他格式的視頻文件。此外,不同的html5瀏覽器支持的視頻文件格式也略有不同,這種狀況可能會(huì)在未來(lái)的html5中得以改善。