真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

html5video移動(dòng)端的示例分析

這篇文章主要介紹html5 video 移動(dòng)端的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)是一家專業(yè)提供密云企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為密云眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

介紹了html5 video 移動(dòng)端填坑記,分享給大家,具體如下:



自動(dòng)播放

設(shè)置autoplay屬性

移動(dòng)瀏覽器中

但是在很多移動(dòng)瀏覽器里,都是要求用戶的真實(shí)操作來(lái)(touchend、click、doubleclick 或 keydown 事件等標(biāo)準(zhǔn)的事件)觸發(fā)調(diào)用video.play(),才能自動(dòng)播放影音視頻。

 dom.addEventListener('click', function () {
   video.play()
})

微信中

也可以在  wx.ready()里觸發(fā)video.play()

wx.ready(function () {
  video.play()
})

內(nèi)聯(lián)播放

設(shè)置屬性 webkit-playsinline playsinline

在iOS Safari和一些安卓的一些瀏覽器下播放視頻的時(shí)候,不能在h6頁(yè)面中播放視頻,系統(tǒng)會(huì)自動(dòng)接管視頻

如果需要在h6頁(yè)面內(nèi)播放視頻,需要在視頻標(biāo)簽上加上  webkit-playsinline,在iOS10以后,需要加上playsinline,建議同時(shí)加上這兩個(gè)屬性。同時(shí)還需要app支持這種模式

webview.allowsInlineMediaPlayback = YES;

ios手Q和微信都支持這種模式,但是android 微信就掛了

android 微信

android微信內(nèi)置瀏覽器采用騰訊X5內(nèi)核,不遵循X5web標(biāo)準(zhǔn),video強(qiáng)制全屏就是其一。視頻播放完畢后還會(huì)出現(xiàn)QQ自己的視頻推薦

據(jù)說(shuō),其有個(gè)白名單,白名單下的視頻資源,就不會(huì)全屏。但是騰訊已經(jīng)不能再增加白名單了。尿性,無(wú)解。。。。。。

目前還有一個(gè)解決辦法,就是使用h6  canvas 播放 video

canvas 播放視頻

使用canvas 遇到的坑:video 必須加 x5-video-player-type="h6" 屬性,否則,在移動(dòng)端就會(huì)卡死不能播放視頻,個(gè)人認(rèn)為是因?yàn)橐曨l被接管的原因?qū)е隆?/p>


  
  

最后發(fā)現(xiàn),雖然使用canvas播放視頻,android微信中可以屏蔽全屏視頻播放完的推薦視頻。但是還沒(méi)辦法禁止視頻播放時(shí) 的全屏問(wèn)題。還是得萬(wàn)惡的白名單。吐槽。。。。。。。。。。。。。。。。
更坑爹的是沒(méi)有找到j(luò)s觸發(fā)退出全屏的方法。

ios黑屏問(wèn)題

ios 在播放視頻時(shí),會(huì)出現(xiàn)短暫的黑屏,然后正常顯示。

解決方法:

在視頻上層覆蓋一個(gè) 添加一個(gè)p并用一張圖片填充,制造播放前加載假象。然后監(jiān)聽(tīng)事件 timeupdate ,視頻播放有畫(huà)面時(shí)移除這個(gè)“p塊”

video.addEventListener('timeupdate', function(){
  if(video.currentTime > 0.1){
      posterImg.hidden();
  }
})

Media 方法和屬性

HTMLVideoElement和HTMLAudioElement 均繼承自HTMLMediaElement

// 媒體錯(cuò)誤
MediaObj.error; //null:正常
MediaObj.error.code; //1.用戶終止 2.網(wǎng)絡(luò)錯(cuò)誤 3.解碼錯(cuò)誤 4.URL無(wú)效

//媒體當(dāng)前狀態(tài)
MediaObj.currentSrc; //返回當(dāng)前資源的URL
MediaObj.src = value; //返回或設(shè)置當(dāng)前資源的URL
MediaObj.canPlayType(type); //是否能播放某種格式的資源
MediaObj.networkState; //0.此元素未初始化 1.正常但沒(méi)有使用網(wǎng)絡(luò) 2.正在下載數(shù)據(jù) 3.沒(méi)有找到資源
MediaObj.load(); //重新加載src指定的資源
MediaObj.buffered; //返回已緩沖區(qū)域,TimeRanges
MediaObj.preload; //none:不預(yù)載 metadata:預(yù)載資源信息 auto:

//準(zhǔn)備狀態(tài)
MediaObj.readyState;//1:HAVE_NOTHING 
                    //2:HAVE_METADATA 
                   //3.HAVE_CURRENT_DATA 
                  //4.HAVE_FUTURE_DATA 
                 //5.HAVE_ENOUGH_DATA
MediaObj.seeking; //是否正在seeking

//回放狀態(tài)
MediaObj.currentTime = value; //當(dāng)前播放的位置,賦值可改變位置
MediaObj.startTime; //一般為0,如果為流媒體或者不從0開(kāi)始的資源,則不為0
MediaObj.duration; //當(dāng)前資源長(zhǎng)度 流返回?zé)o限
MediaObj.paused; //是否暫停
MediaObj.defaultPlaybackRate = value;//默認(rèn)的回放速度,可以設(shè)置
MediaObj.playbackRate = value;//當(dāng)前播放速度,設(shè)置后馬上改變
MediaObj.played; //返回已經(jīng)播放的區(qū)域,TimeRanges,關(guān)于此對(duì)象見(jiàn)下文
MediaObj.seekable; //返回可以seek的區(qū)域 TimeRanges
MediaObj.ended; //是否結(jié)束
MediaObj.autoPlay; //是否自動(dòng)播放
MediaObj.loop; //是否循環(huán)播放
MediaObj.play(); //播放
MediaObj.pause(); //暫停

//視頻控制
MediaObj.controls;//是否有默認(rèn)控制條
MediaObj.volume = value; //音量
MediaObj.muted = value; //靜音

//TimeRanges(區(qū)域)對(duì)象
TimeRanges.length; //區(qū)域段數(shù)
TimeRanges.start(index) //第index段區(qū)域的開(kāi)始位置
TimeRanges.end(index) //第index段區(qū)域的結(jié)束位置

//【★★★**相關(guān)事件**★★★】
//事件分發(fā)
var eventTester = function(e){
    Media.addEventListener(e,function(){
        console.log((new Date()).getTime(),e)
    },false);
}
//事件監(jiān)聽(tīng)
eventTester("loadstart"); //客戶端開(kāi)始請(qǐng)求數(shù)據(jù)
eventTester("progress"); //客戶端正在請(qǐng)求數(shù)據(jù)
eventTester("suspend"); //延遲下載
eventTester("abort"); //客戶端主動(dòng)終止下載(不是因?yàn)殄e(cuò)誤引起)
eventTester("loadstart"); //客戶端開(kāi)始請(qǐng)求數(shù)據(jù)
eventTester("progress"); //客戶端正在請(qǐng)求數(shù)據(jù)
eventTester("suspend"); //延遲下載
eventTester("abort"); //客戶端主動(dòng)終止下載(不是因?yàn)殄e(cuò)誤引起),
eventTester("error"); //請(qǐng)求數(shù)據(jù)時(shí)遇到錯(cuò)誤
eventTester("stalled"); //網(wǎng)速失速
eventTester("play"); //play()和autoplay開(kāi)始播放時(shí)觸發(fā)
eventTester("pause"); //pause()觸發(fā)
eventTester("loadedmetadata"); //成功獲取資源長(zhǎng)度
eventTester("loadeddata"); //
eventTester("waiting"); //等待數(shù)據(jù),并非錯(cuò)誤
eventTester("playing"); //開(kāi)始回放
eventTester("canplay"); //可以播放,但中途可能因?yàn)榧虞d而暫停
eventTester("canplaythrough"); //可以播放,歌曲全部加載完畢
eventTester("seeking"); //尋找中
eventTester("seeked"); //尋找完畢
eventTester("timeupdate"); //播放時(shí)間改變
eventTester("ended"); //播放結(jié)束
eventTester("ratechange"); //播放速率改變
eventTester("durationchange"); //資源長(zhǎng)度改變
eventTester("volumechange"); //音量改變

以上是“html5 video 移動(dòng)端的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


分享名稱:html5video移動(dòng)端的示例分析
鏈接地址:http://weahome.cn/article/gogehe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部