像回飞镖一样来回播放视频,并带有暂停功能以保持当前帧

时间:2019-04-04 03:48:04

标签: javascript jquery html5 html5-video

我所需要的只是当我按下“暂停”(“自定义”按钮以暂停视频,而不是视频播放器本身的暂停)时,它将像下面这样暂停 1.如果视频正在前进,则它将在当前帧上暂停,并从我暂停的当前帧开始播放。 2.如果视频正反转,它将继续反转直到达到零或开始时间。

我已经尝试过暂停它,但是反方向仍然有效(如果向后)。

Here is my html tag


<div id="qqx64h8yp1">
    <div class="videos">
        <div class="element-wrap">
            <video crossorigin="anonymous" style="" class="b_forward">
                <source src="https://www.w3schools.com/tags/mov_bbb.mp4" type="video/mp4">
            </video>
        </div>
    </div>
</div>


Now here is my jquery/javascript

function boomerangForward(targetId){
    var videoX = document.getElementById(targetId).getElementsByTagName('video')[0],
        audioContent = $('#' + targetId).find('source').attr('src'),
        splitTime = audioContent.split('#')[1],
        endTime = splitTime.split(',')[1];

    $('#' + targetId).find('video').addClass('b_forward');

    videoX.play();

    if ($('#' + targetId).find('video').hasClass('b_forward')) {
        videoX.ontimeupdate = function() {
            checkEndTime(2.5, videoX, targetId);
        };
    }
}

function checkEndTime(endTime, videoX, targetId){
    var videoStatus  = videoX.paused,
        videoCurrent = videoX.currentTime;

    if (videoCurrent >= endTime) {
        videoX.pause();
        if (videoStatus) {
            console.log('Video Reached 2.5');
            boomBackward(videoX, targetId);
        }
    }
}

function boomBackward(videoX, targetId){
    $('#' + targetId).find('video').removeClass('b_forward');
    intervalRewind = setInterval(function(){
        if(videoX.currentTime > 0){
            $('#' + targetId).find('video').addClass('b_reverse');
            videoX.currentTime += -.1;
        }else{
            $('#' + targetId).find('video').removeClass('b_reverse');
            clearBoomerangIntervals(videoX, targetId);
        }
    },100);
}

function clearBoomerangIntervals(videoX, targetId){
    var videoX = document.getElementById(targetId).getElementsByTagName('video')[0];
    clearInterval(intervalRewind);
    if (videoX.currentTime == 0) {
        boomerangForward(targetId);
    } 
}


我要寻找的结果是,当我暂停视频后退时,它会跳过间隔,如果再次播放,它将继续反转直到达到零。

0 个答案:

没有答案