<div class="video-div">

<!--播放图标-->
<button class="arrowback2" ion-button clear (click)="runPlayFirst($event)">
  <img width="13px" src="./assets/images/playbtn.png">
</button>
<!--控制条部分-->
<ion-row class="controls-div">
  <ion-col col-auto class="controls-fl fl">
    <img class="fl" style="margin-right: 10px;" (click)="runPlay()" *ngIf="!isPlay" height="20px" src="./assets/img/icon/stop.png">
    <img class="fl" style="margin-right: 10px;" (click)="runPlay()" *ngIf="isPlay" height="16px" src="./assets/img/icon/play.png">
    <div class="controls-time fl">{{currentTime*1000 | date:'mm:ss'}}</div>
  </ion-col>
  <ion-col col-auto class="progress-mid fl">
    <div class="videoControls">
      <div class="progressWrap" (click)="videoSeek($event)">
        <div class="playProgress"></div>
      </div>
    </div>
  </ion-col>
  <ion-col col-auto class="controls-fl fr">
    <img class="controls-full fr" height="20px" (click)="runFull()" src="./assets/img/icon/full.png">
    <div class="controls-mid fr">{{ durationLength*1000 | date:'mm:ss' }}</div>
  </ion-col>
</ion-row>
<div class="video-bg" align="center">
  <p>试学结束,请购买后学习完整课程</p>
  <button class="videobuy-btn" (click)="openPayment(videoDetails)" ion-button>立即购买</button>
</div>
<video id="videoAttr" poster="./assets/img/liebiao1.png" src="http://118.190.68.206:8090/media/file/a.mp4" height="250"></video>
<!--分享-->
<button class="arrowend" ion-button clear>
  <ion-icon><img width="20px" src="./assets/img/share.png"></ion-icon>
</button>

</div>

**

一:控制视频播放暂停

**
//点击播放或者暂停
runPlay(){

this.myVideo = this.runtime.plugins.JQuery('#videoAttr');
if(this.myVideo[0].paused){
  this.myVideo[0].play();
  this.progressFlag = setInterval(() =>{
    this.getProgress();
  },1000);
  this.isPlay = true;//播放暂停按钮切换
  this.runtime.plugins.JQuery('.arrowback2').remove();

}else{
  //暂停播放
  this.myVideo[0].pause();
  clearInterval(this.progressFlag);
  this.isPlay = false;
}

}

二:试看功能,播放进度条功能

//获取进度条
getProgress(){

this.myVideo = this.runtime.plugins.JQuery('#videoAttr');
this.progressWrap = this.runtime.plugins.JQuery('.progressWrap');
this.playProgress = this.runtime.plugins.JQuery('.playProgress');
this.durationLength = this.myVideo[0].duration;
this.currentTime = this.myVideo[0].currentTime;
console.log('666',this.currentTime);
this.percent = this.currentTime / this.durationLength;      //获取视频播放到百分比
this.playProgress.width(this.percent * (this.progressWrap[0].offsetWidth));
//试看时间控制
if(parseInt(this.currentTime) == 1000){
  this.runtime.plugins.JQuery('.video-bg').css("display","block");
  this.myVideo[0].pause();
}

}
当前视频播放到10s后如果未购买,要购买才能看完整视频。
当前的播放进度条的宽度等于当前播放时间/视频总长度。

三:点击进度条位置 跳转到指定视频播放的位置

// 鼠标在播放条上点击时进行捕获并进行处理
videoSeek(e){

clearInterval(this.progressFlag);
this.progressWrap = this.runtime.plugins.JQuery('.progressWrap');
this.playProgress = this.runtime.plugins.JQuery('.playProgress');
var length = e.pageX - this.progressWrap[0].offsetLeft;
this.percent = length / this.progressWrap[0].offsetWidth;
this.playProgress.width(this.percent * (this.progressWrap[0].offsetWidth));
this.myVideo[0].currentTime = this.percent * this.myVideo[0].duration;
this.myVideo[0].play();//播放
this.progressFlag = setInterval(() =>{
  this.getProgress();
},1000);

}


_Junjun
28 声望6 粉丝

下一篇 »
常用的ES6