在IOS下currentTime当前播放时间无效的解决方法

在制作视频观看页面时,在视频尚未结束之前关闭视频,需要记录当前播放的时长,以便下次点击同一个视频时,获取上次播放的时间,继续播放。在使用video.currentTime在电脑端和安卓都能正常播放,但是在IOS设备上无法播放,每次从头开始播放。查了百度后才知道IOS需要进行设置的设置:安卓是页面加载时触发;IOS是视频play()后才触发。

注:$myVideo.addEventListener("canplay",function() {});

所以需要分开实现,代码如下:

//判断是否安卓设备
function isAndroid(){
    var u = navigator.userAgent;
    if(u.indexOf('Android') > -1 || u.indexOf('Linux') > -1){
        return true;
    }
}
$(function(){
    var $myVideo = $("#chatAudio")[0];
    if(isAndroid()){
        if(sessionStorage.currentTime > 0.1){
            //设置播放时间
            $myVideo.currentTime = sessionStorage.currentTime;
        }
    }else{
        if(sessionStorage.currentTime > 0.1){
            //已准备好开始播放
            $myVideo.addEventListener("canplay",function() {
                //设置播放时间
                $myVideo.currentTime = sessionStorage.currentTime;
            });
        }
    }
    //保存已播放的时间
    $myVideo.addEventListener("timeupdate", function(){
        sessionStorage.currentTime = $myVideo.currentTime;
    }, false);
})

本文作者:肖云

本文链接:http://www.d7dd.com/2019/7/ios-currentime

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0许可协议。转载请注明出处!

MySQL复制表结构和复制表数据
0 条评论
已登录,注销 取消