在ios和android上有顯示的區別,如果你只是顯示一個普通的網頁,只需要在iOS上加上webkit-playsinline=”true” 安卓上x5-video-player-type=”h5″ x5-video-player-fullscreen=”true” x5-video-orientation=”portraint”,即可實現在微信上的同層播放;iOS和安卓顯示和播放沒有問題;
如果你跟我一樣想要把視訊放到swiper裡,且不是在第一頁播放視訊,並想要視訊有圓角。那麼問題就來了。首先在swiper非第一屏播放安卓會出現的問題是豎屏只有聲音沒有影像,我嘗試了好久只需要去掉安卓部分的同層播放程式碼即可,即去掉x5-video-player-type=”h5″;如果視訊在swiper裡,你肯定會有這樣的需求,就是滑動到非視訊頁的時候,暫停視訊,並出現一個模擬的暫停按鈕在視訊上方。這裡可以這樣寫:
const mySwiper = new Swiper(`.swiper-container`, {
direction: `vertical`,
on: {
slideChangeTransitionEnd: function() {
if (this.activeIndex != 1) {
//暫停視訊程式碼
}
}
}
})
這裡定義一個是否顯示暫停的按鈕的變數showPoster,來顯示暫停模擬按鈕和隱藏video;
這裡顯示播放按鈕必須和視訊顯示必須呈反相關,因為不這樣作會有很多預設的bug,導致video_container的overflow:hidden不生效,無法顯示圓角,這算是一種比較圓滑的做法了;我試過將video的position設為fixed 這樣雖然能正常顯示和隱藏模擬的點選按鈕,但會讓父級的overflow:hidden失效。無法顯示視訊圓角。程式碼大概如下:
<div class="video_container">
<div class="clickVideo" @click="playVideo()" v-show="showPoster">
<img src="../assets/點選播放按鈕.png"/>
</div>
<video
v-show="!showPoster"
src="../assets/QQ20181214-221408-HD.mp4"
id="video"
preload="auto"
x5-video-player-fullscreen="true"
x5-video-orientation="portraint"
airplay="allow"
x-webkit-airplay="allow"
playsinline="true"
webkit-playsinline="true"
style="object-fit:fill"
>
<!--
controls="controls" 待加
poster="../assets/share.png"
安卓同層播放屬性
x5-video-player-type="h5" //啟用同層播放。取值固定為`h5`。 啟用之後僅安卓在swiper第二頁播放豎屏不顯示畫面所以這裡暫不用
x5-video-player-fullscreen="true" //設定為 true 是防止橫屏
x5-video-orientation="portraint" //豎屏 landscape 橫屏
ios同層播放屬性
airplay="allow"
x-webkit-airplay="allow"
playsinline="true" //IOS微信瀏覽器支援小窗內播放
webkit-playsinline="true" // 這個屬性是ios 10中設定可以讓視訊在小窗內播放,也就是不是全屏播放
-->
</video>
</div>
<style lang="less">
.video_container{
@w: 670px/2;
@h: 377px/2;
@borderRadius: 50px;
width:@w;
height:@h;
margin:100px auto;
border-radius:@borderRadius;
overflow: hidden;
position: relative;
.clickVideo{
position: absolute;
width:@w;
height:@h;
background:#ccc;
z-index:999;
& > img {
@play:60px;
width:@play;
height:@play;
position:absolute;
top:50%;
left:50%;
transform: translate(-50%, -50%)
}
}
video{
width:@w;
height:@h;
}
}
</style>
注:如果你在swiper的非第一頁使用視訊,在安卓手機上會出現視訊黑屏但可以播放聲音的問題,這個時候就可以不使用安卓的同層播放,即不使用x5-video-player-type=”h5″即可。
同層播放的資料參考連結:http://www.cnblogs.com/jinjin…