接上文,H5实现视频播放器后,增加了新的需求,改为进入页面后,默认在上次的播放位置继续播放视频
但实践发现 将this.$refs.videoPlayer.player.currentTime(playtimes)放在onPlayerLoadeddata事件中时,在IOS端有效,在安卓端无响应
研究后发现因ios与安卓加载事件执行顺序不同,要在onPlayerTimeupdate(player) 上监听安卓端的事件,
故修改如下
// 当播放器在当前播放位置下载数据时触发
onPlayerLoadeddata($event) {
let playtimes = Number(this.playtimes);
let userAgent_m = navigator.userAgent;
if (
userAgent_m.indexOf("iPhone") > -1 ||
userAgent_m.indexOf("iOS") > -1
) {
// 因ios与安卓加载事件执行顺序不同,此处用于修改ios端视频初始播放位置
this.$refs.videoPlayer.player.play();
this.$refs.videoPlayer.player.currentTime(playtimes);
}
},
// // 当前播放位置发生变化时触发。
onPlayerTimeupdate(player) {
// 因ios与安卓加载事件执行顺序不同,此处用于安卓监听timeupdate事件并进行初始播放位置赋值currentTime,只赋值一次
let playtimes = Number(this.playtimes);
let userAgent_m = navigator.userAgent;
if (
userAgent_m.indexOf("iPhone") > -1 ||
userAgent_m.indexOf("iOS") > -1
) {
// ios
} else {
// 安卓
if (this.timeflag === 1) {
this.$refs.videoPlayer.player.currentTime(playtimes);
this.timeflag = 2;
}
}
},