亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

淺談html5 video 移動端填坑記

2024-08-26 00:20:21
字體:
來源:轉載
供稿:網友

本文介紹了html5 video 移動端填坑記,分享給大家,具體如下:

<video id="video"   style="object-fit:fill"   autoplay  webkit-playsinline   playsinline   x5-video-player-type="h5"  x5-video-player-fullscreen="true"  x5-video-orientation="portraint"   src="video.mp4" /></video><!--  object-fit: fill   視頻內容充滿整個video容器  poster:"img.jpg" 視頻封面  autoplay: 自動播放     auto - 當頁面加載后載入整個視頻     meta - 當頁面加載后只載入元數據     none - 當頁面加載后不載入視頻  muted:當設置該屬性后,它規定視頻的音頻輸出應該被靜音  webkit-playsinline playsinline:   內聯播放  x5-video-player-type="h5" :  啟用x5內核H5播放器  x5-video-player-fullscreen="true"  全屏設置。ture和false的設置會導致布局上的不一樣  x5-video-orientation="portraint" :聲明播放器支持的方向,可選值landscape 橫屏,portraint豎屏。                                     默認值portraint。無論是直播還是全屏H5一般都是豎屏播放,                                     但是這個屬性需要x5-video-player-type開啟H5模式-->

自動播放

設置autoplay屬性

<video autoplay></video>

移動瀏覽器中

但是在很多移動瀏覽器里,都是要求用戶的真實操作來(touchend、click、doubleclick 或 keydown 事件等標準的事件)觸發調用video.play(),才能自動播放影音視頻。

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

微信中

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

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

內聯播放

設置屬性 webkit-playsinline playsinline

<video id="video" webkit-playsinline playsinline /></video>

在iOS Safari和一些安卓的一些瀏覽器下播放視頻的時候,不能在h5頁面中播放視頻,系統會自動接管視頻

如果需要在h5頁面內播放視頻,需要在視頻標簽上加上  webkit-playsinline,在iOS10以后,需要加上playsinline,建議同時加上這兩個屬性。同時還需要app支持這種模式

webview.allowsInlineMediaPlayback = YES;

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

android 微信

android微信內置瀏覽器采用騰訊X5內核,不遵循X5web標準,video強制全屏就是其一。視頻播放完畢后還會出現QQ自己的視頻推薦

據說,其有個白名單,白名單下的視頻資源,就不會全屏。但是騰訊已經不能再增加白名單了。尿性,無解。。。。。。

目前還有一個解決辦法,就是使用h5  canvas 播放 video

canvas 播放視頻

使用canvas 遇到的坑:video 必須加 x5-video-player-type="h5" 屬性,否則,在移動端就會卡死不能播放視頻,個人認為是因為視頻被接管的原因導致。

<div class="wrapper">  <video id="video" style="display: none" autoplay src="video.mp4" x5-video-player-type="h5"></video>  <canvas id="canvas"></canvas></div><script>  var video = document.querySelector('#video')  var canvas = document.querySelector('#canvas')  var wrapper = canvas.parentNode  var width = wrapper.offsetWidth  var height = wrapper.offsetHeight  var ctx = c.getContext('2d')  var time = null  canvas.width = width  canvas.height = height  canvas.addEventListener('click', function () {    video.play()  })  video.addEventListener('play', function () {      time = window.setInterval(function () {        ctx.drawImage(v, 0, 0, width, height);      }, 20);  }, false);  video.addEventListener('pause', function () {      window.clearInterval(time);  }, false);  video.addEventListener('ended', function () {      window.clearInterval(time);  }, false);</script>

最后發現,雖然使用canvas播放視頻,android微信中可以屏蔽全屏視頻播放完的推薦視頻。但是還沒辦法禁止視頻播放時 的全屏問題。還是得萬惡的白名單。吐槽。。。。。。。。。。。。。。。。
更坑爹的是沒有找到js觸發退出全屏的方法。

ios黑屏問題

ios 在播放視頻時,會出現短暫的黑屏,然后正常顯示。

解決方法:

在視頻上層覆蓋一個 添加一個div并用一張圖片填充,制造播放前加載假象。然后監聽事件 timeupdate ,視頻播放有畫面時移除這個“div塊”

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

Media 方法和屬性

HTMLVideoElement和HTMLAudioElement 均繼承自HTMLMediaElement

// 媒體錯誤MediaObj.error; //null:正常MediaObj.error.code; //1.用戶終止 2.網絡錯誤 3.解碼錯誤 4.URL無效//媒體當前狀態MediaObj.currentSrc; //返回當前資源的URLMediaObj.src = value; //返回或設置當前資源的URLMediaObj.canPlayType(type); //是否能播放某種格式的資源MediaObj.networkState; //0.此元素未初始化 1.正常但沒有使用網絡 2.正在下載數據 3.沒有找到資源MediaObj.load(); //重新加載src指定的資源MediaObj.buffered; //返回已緩沖區域,TimeRangesMediaObj.preload; //none:不預載 metadata:預載資源信息 auto://準備狀態MediaObj.readyState;//1:HAVE_NOTHING                     //2:HAVE_METADATA                    //3.HAVE_CURRENT_DATA                   //4.HAVE_FUTURE_DATA                  //5.HAVE_ENOUGH_DATAMediaObj.seeking; //是否正在seeking//回放狀態MediaObj.currentTime = value; //當前播放的位置,賦值可改變位置MediaObj.startTime; //一般為0,如果為流媒體或者不從0開始的資源,則不為0MediaObj.duration; //當前資源長度 流返回無限MediaObj.paused; //是否暫停MediaObj.defaultPlaybackRate = value;//默認的回放速度,可以設置MediaObj.playbackRate = value;//當前播放速度,設置后馬上改變MediaObj.played; //返回已經播放的區域,TimeRanges,關于此對象見下文MediaObj.seekable; //返回可以seek的區域 TimeRangesMediaObj.ended; //是否結束MediaObj.autoPlay; //是否自動播放MediaObj.loop; //是否循環播放MediaObj.play(); //播放MediaObj.pause(); //暫停//視頻控制MediaObj.controls;//是否有默認控制條MediaObj.volume = value; //音量MediaObj.muted = value; //靜音//TimeRanges(區域)對象TimeRanges.length; //區域段數TimeRanges.start(index) //第index段區域的開始位置TimeRanges.end(index) //第index段區域的結束位置//【★★★**相關事件**★★★】//事件分發var eventTester = function(e){    Media.addEventListener(e,function(){        console.log((new Date()).getTime(),e)    },false);}//事件監聽eventTester("loadstart"); //客戶端開始請求數據eventTester("progress"); //客戶端正在請求數據eventTester("suspend"); //延遲下載eventTester("abort"); //客戶端主動終止下載(不是因為錯誤引起)eventTester("loadstart"); //客戶端開始請求數據eventTester("progress"); //客戶端正在請求數據eventTester("suspend"); //延遲下載eventTester("abort"); //客戶端主動終止下載(不是因為錯誤引起),eventTester("error"); //請求數據時遇到錯誤eventTester("stalled"); //網速失速eventTester("play"); //play()和autoplay開始播放時觸發eventTester("pause"); //pause()觸發eventTester("loadedmetadata"); //成功獲取資源長度eventTester("loadeddata"); //eventTester("waiting"); //等待數據,并非錯誤eventTester("playing"); //開始回放eventTester("canplay"); //可以播放,但中途可能因為加載而暫停eventTester("canplaythrough"); //可以播放,歌曲全部加載完畢eventTester("seeking"); //尋找中eventTester("seeked"); //尋找完畢eventTester("timeupdate"); //播放時間改變eventTester("ended"); //播放結束eventTester("ratechange"); //播放速率改變eventTester("durationchange"); //資源長度改變eventTester("volumechange"); //音量改變

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品少妇videofree| 欧美日韩中文字幕综合视频| 亚洲精品美女在线观看播放| 亚洲第一精品自拍| 日韩久久免费视频| 久久精品小视频| 国产精品免费一区| 欧美成人精品h版在线观看| 91夜夜揉人人捏人人添红杏| 亚洲在线免费看| 国产精品久久久久999| 亚洲肉体裸体xxxx137| 成人字幕网zmw| 国产精品偷伦免费视频观看的| 国产亚洲精品日韩| 久久久久99精品久久久久| 91tv亚洲精品香蕉国产一区7ujn| 亚洲午夜久久久久久久| 国产精品久久久av久久久| 成人欧美在线视频| 欧美日韩在线免费| 欧美日韩高清在线观看| 国产美女精彩久久| 亚洲精品久久久一区二区三区| 欧美性xxxx18| 亚洲福利在线播放| 成人免费视频xnxx.com| 91亚洲精品一区二区| 精品成人乱色一区二区| 最近2019中文字幕mv免费看| 国产成人一区二区三区| 亚洲一区二区在线播放| 国产精品三级在线| 欧美精品成人在线| 欧美亚洲成人精品| 亚洲第一免费播放区| 久久久久久久97| 亚洲色图第三页| 欧美乱妇40p| 在线观看国产精品日韩av| 日韩av免费一区| 国产91精品久久久| 91精品久久久久久久久久入口| 亚洲精品日韩av| 国产一区二区视频在线观看| 日韩最新在线视频| 日韩激情片免费| 精品久久在线播放| 亚洲乱码国产乱码精品精| 国产欧美日韩精品在线观看| 96sao精品视频在线观看| 久久国产精品久久国产精品| 国产成人高潮免费观看精品| 97在线精品国自产拍中文| 亚洲大胆人体av| 日韩在线免费观看视频| 国产成人精品久久二区二区91| 亚洲精品网址在线观看| 欧美大片免费观看在线观看网站推荐| 日本久久久a级免费| 亚洲国产精品va在线看黑人动漫| 国产精品毛片a∨一区二区三区|国| 欧美激情视频在线免费观看 欧美视频免费一| 中文字幕欧美视频在线| 日韩免费观看高清| 91成人福利在线| 亚洲夜晚福利在线观看| 精品中文字幕在线观看| 91亚洲精品视频| 欧美韩日一区二区| 国产丝袜一区二区三区| 国产精品久久久久久久久影视| 欧美自拍视频在线| 黑丝美女久久久| 亚洲乱码av中文一区二区| 亚洲欧美日本另类| 国产成人精品国内自产拍免费看| 亚洲美女视频网站| 在线看国产精品| 69视频在线播放| 精品久久久久久久久久久久| 日韩精品一区二区三区第95| 日韩免费中文字幕| 日韩亚洲在线观看| 国产成人福利网站| 国产噜噜噜噜久久久久久久久| 欧美壮男野外gaytube| 97久久超碰福利国产精品…| 日韩精品免费在线播放| 国产精品日韩欧美| 国产精品视频久久久| 色av吧综合网| 一级做a爰片久久毛片美女图片| 亚洲女性裸体视频| 96pao国产成视频永久免费| 日韩在线中文字| 国产精品99免视看9| 欧美激情区在线播放| 欧美激情三级免费| 亚洲精品成人久久| 日韩在线免费高清视频| 日韩二区三区在线| www.99久久热国产日韩欧美.com| 亚洲a级在线播放观看| 亚洲美女精品成人在线视频| 中文字幕亚洲无线码在线一区| 国产精品亚洲视频在线观看| 欧美日韩精品在线观看| 日韩精品中文在线观看| 91色视频在线观看| 97婷婷大伊香蕉精品视频| 久久伊人免费视频| 亚洲精品电影在线| 在线播放日韩专区| 国色天香2019中文字幕在线观看| 亚洲国产中文字幕在线观看| 黄网动漫久久久| 国产视频在线一区二区| 久久噜噜噜精品国产亚洲综合| 国产主播喷水一区二区| 日韩黄色高清视频| 九九热最新视频//这里只有精品| 国产精品黄视频| 国产精品扒开腿做爽爽爽的视频| 久久精品国产亚洲| 亚洲bt天天射| 国产噜噜噜噜久久久久久久久| 亚洲老头老太hd| 国产97在线|亚洲| 亚洲国产美女精品久久久久∴| 国产精品狼人色视频一区| 国产亚洲一级高清| 亚洲网站在线播放| 久久久久久久久久亚洲| 成人网在线视频| 另类天堂视频在线观看| 亚洲欧美变态国产另类| 国产成人精品久久| 久久久免费在线观看| 亚洲国产另类 国产精品国产免费| 日韩精品极品视频| 国产热re99久久6国产精品| 久久成年人免费电影| 久久国产精品电影| 欧美另类极品videosbestfree| 亚洲自拍偷拍色片视频| 欧美一级视频一区二区| 欧美性xxxx极品hd满灌| 国语自产偷拍精品视频偷| 欧美大全免费观看电视剧大泉洋| 伦理中文字幕亚洲| 在线看日韩av| 欧美日韩成人在线视频| 热久久这里只有| 在线观看欧美成人| 成人免费看吃奶视频网站| 欧美色图在线视频| 麻豆乱码国产一区二区三区| 色综合伊人色综合网站| 久久国内精品一国内精品| 日韩亚洲欧美中文高清在线| 亚洲精品国产综合久久| 亚洲激情 国产| 国产精品第三页|