使用阿里云播放器播放视频,在钉钉微应用上面,ios和其他Android都可以控制,唯独小米手机不行,以下是我的实现方法:
var progressBtn = this.progressBtn;
var player = new Aliplayer({
id: 'J_prismPlayer',
height: '100%',
width: '100%',
autoplay: true,
source: '',
playsinline: true,
preload: true,
showBuffer: true,
type: "{mp4 | flv | m3u8 | rtmp | mp3}",
controlBarVisibility: 'always',
skinLayout: [{
name: "bigPlayButton",
align: "blabs",
x: 30,
y: 80
},
{
name: "H5Loading",
align: "cc"
},
{
name: "errorDisplay",
align: "tlabs",
x: 0,
y: 0
},
{
name: "controlBar",
align: "blabs",
x: 0,
y: 0,
children: [
//这里禁用进度条
{
name: "progress",
align: "tlabs",
x: 0,
y: 0
},
{
name: "playButton",
align: "tl",
x: 15,
y: 13
},
{
name: "timeDisplay",
align: "tl",
x: 10,
y: 8
},
{
name: "fullScreenButton",
align: "tr",
x: 20,
y: 13
},
{
name: "volume",
align: "tr",
x: 20,
y: 13
},
]
}
],
}, function(player) {
//找到原生video标签
let video = document.getElementsByTagName('video')[0]; //小米手机上alert并没弹出这个标签
var timeArr = [];
//首次播放进度位置
video.addEventListener('timeupdate', function(e) {
if(playStart != null) {
player.seek(playStart);
video.currentTime = playStart;
playStart = null;
};
});
//增加播放器进度修改事件
video.addEventListener('seeking', function(e) {
//原生播放器播放进度被拖动时,将拖动的时间集合放到一个数组中     
//if(e.target.currentTime != 0) {
timeArr.push(Math.floor(e.target.currentTime))
//} });
video.addEventListener('seeked', function(e) {
//获取拖动事件数组并拿到刚开始拖动的第一刻时间,视频进度修正到刚拖动的播放时间       
let new_time = e.target.currentTime;
let old_time = Math.min.apply(null, timeArr)
//是否允许快进(progressBtn小于100则不允许快进)判断
if(progressBtn < 100) {
if(old_time != 'Infinity') {
//console.log(new_time > old_time ? "拖动快进" : "拖动后退");
if(new_time > old_time) {
if(playStart == null) {
alert('视频未播放完,暂不允许快进')
}
player.seek(startTime);
video.currentTime = startTime;
//回到拖动位置清空数组
timeArr = [];
}
}
} });
});
//阿里播放器拖动【开始】拖动时
player.on('startSeek', (e) => {
player.pause(); });
//阿里播放器拖动【结束】拖动时
player.on('completeSeek', (e) => {
player.play(); });

解决方案 »

  1.   

    可以在拉动和停止拉动里面做操作  代码实现
    let start = true;
                let progress = '';
                player.on('startSeek', (e) => {
                    if(start){
                        start = false;
                        progress =  player.getCurrentTime();
                    }
                    player.pause();            });
                //阿里播放器拖动【结束】拖动时
                player.on('completeSeek', (e) => {
                    start = true;
                    player.seek(progress); 
                    player.play();            });
    这样就可以实现禁止拉进  或着 后退