vue-video-player 解決微信自動全屏播放問題(橫豎屏導致樣式錯亂問題)
對于vue-video-player,從github上找到一段代碼,直接放頁面!可以了,視頻展示出來了!開始下一個功能。。。。
這可能是大部分前端開發(fā)者一貫的思維模式,拿來一個插件,看著demo就做出來了,功能展示正常就OK了,但是一旦出了bug,就會面向百度編程或者面向Google編程!
其實,我也是這樣的,哈哈哈哈.....
廢話不多說,最近在做一個視頻播放的功能,找到vue-video-player插件后,咔咔咔完事,拿著我的愛瘋,完美演繹!但是其他人的國產某牌手機,展示的完全不一樣,打開后自動全屏,而且還有個橫豎屏控制。“這是我寫的頁面?????”,心中一萬只神獸在奔騰。橫豎屏切換后,視頻下的內容在全屏模式下展示了出來一部分。
百度了半天,看源碼,還是不知道咋回事。
后來終于找到了解決辦法:
之前:playsinline="playsinline"這里是true寫死的,現在改為計算屬性playsinline()
computed: { player () { return this.$refs.videoPlayer.player }, playsinline () { let ua = navigator.userAgent.toLocaleLowerCase() // x5內核 if (ua.match(/tencenttraveler/) != null || ua.match(/qqbrowse/) != null) { return false } else { // ios端 return true } } }
添加playsinline()這個計算屬性,原因是在安卓和iOS端微信使用的內核不同,所需要的attribute也不同,嘗試后,采用x5內核返回false,反之為true
配合jq工具,繼續(xù)添加兩個端所需的屬性
@canplay="onPlayerCanplay($event)" onPlayerCanplay (player) { var ua = navigator.userAgent.toLocaleLowerCase() // x5內核 if (ua.match(/tencenttraveler/) != null || ua.match(/qqbrowse/) != null) { $('body').find('video').attr('x-webkit-airplay', true).attr('x5-playsinline', true).attr('webkit-playsinline', true).attr('playsinline', true) } else { // ios端 $('body').find('video').attr('webkit-playsinline', 'true').attr('playsinline', 'true') } },
至此,完美解決安卓端微信播放時,橫豎屏的播放樣式錯亂和播放時視頻內容未自適應。
為兼容ios橫屏將視頻旋轉90度
methods: { // 視頻寬高設置為手機寬高 videoFullScreen() { let width = document.documentElement.clientWidth; let height = document.documentElement.clientHeight; document.getElementById('video_content').style.height = width + 'px'; document.getElementById('video_content').style.width = height + 'px'; }, }
/*視頻旋轉*/ .video_box_rotate{ transform rotate(90deg) }
視頻監(jiān)聽播放結束、進入全屏、退出全屏事件
mounted() {this.videoEnd()}, methods: { videoEnd(){ let video = document.getElementById('video_content'); video.addEventListener('ended', () => { alert('video end') }); }; // 視頻播放結束 } // 全屏事件 x5videoenterfullscreen // 退出全屏 x5videoexitfullscreen
監(jiān)聽手機橫豎屏
window.addEventListener('orientationchange', function() { // alert(window.orientation); // 這里可以根據orientation做相應的處理 if (window.orientation === -90) { self.iphoneScreenShow = true; } else { self.iphoneScreenShow = false; } }, false);
到此這篇關于vue-video-player 解決微信自動全屏播放問題(橫豎屏導致樣式錯亂問題)的文章就介紹到這了,更多相關vue-video-player 自動全屏內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- vue視頻播放插件vue-video-player的具體使用方法
- 基于vue-video-player自定義播放器的方法
- vue-video-player 通過自定義按鈕組件實現全屏切換效果【推薦】
- vue-video-player實現實時視頻播放方式(監(jiān)控設備-rtmp流)
- 詳解vue2.0+vue-video-player實現hls播放全過程
- 詳解vue-video-player使用心得(兼容m3u8)
- vue-video-player視頻播放器使用配置詳解
- vue使用video插件vue-video-player詳解
- vue video和vue-video-player實現視頻鋪滿教程
- vue使用vue-video-player插件播放視頻的步驟講解
相關文章
mpvue中配置vuex并持久化到本地Storage圖文教程解析
這篇文章主要介紹了mpvue中配置vuex并持久化到本地Storage的教程詳解,# 配置vuex和在vue中相同,只是mpvue有一個坑,就是不能直接在new Vue的時候傳入store。本文分步驟給大家介紹的非常詳細,需要的朋友參考下吧2018-03-03