中止|如果视频被暂停,则删除delay()函数(即使延迟未完成也不要再延迟)

时间:2017-03-22 00:35:10

标签: jquery video delay

我为我的视频制作了字幕系统。现在我正处于副标题的阶段 - 一个带有文本的框应该显示在特定的第二个和特定的位置,然后在x秒后淡出。然而,我仍然坚持这一点:如果我仍然显示字幕时仍然显示视频 - 我希望它仍然显示但是它用完了x秒并且仍然隐藏。

问题:如果视频暂停,如何在不考虑延迟功能的情况下仍然显示字幕框?当显示字幕时显示后显示视频 - 计算剩余秒数(x_total - already_shown = left_seconds)?

JQUERY :(最后两行)

  $('video').bind('play',function() {
  $('.play_btn').hide();
  if($('.word') && $('.pos') && $('.time') && $('.sec')){ 
     $pos = $('.pos').val().split(','); 
     var seconds = $('.sec').val();
     $('video').on("timeupdate", function(){
       console.log(parseInt(this.currentTime)); 
       if(parseInt(this.currentTime) == $('.time').val()){console.log(seconds);
            $('.video_cover').append("<div class='sub' style='background:white;z-index:2147483647 ;padding:5px;top:"+$pos[0]+"%;left:"+$pos[1]+"%;position:absolute;'>"+$('.word').val()+"</div>");    
       }
         if (this.paused == false) { $('.sub').addClass('sub_spesial_class');$(".sub_spesial_class").delay(seconds*1000).hide(100);console.log('play'); 
            }else{console.log('pauzed');$('.sub').removeClass('sub_spesial_class'); }
    })
}
});   

正如您所看到的 - 我已经尝试在播放视频时添加特定类并向该类添加延迟功能,然后如果视频被暂停 - 删除该类。因为我通过删除类我将中止该延迟功能。但是那没用。 :( 所以,最后一个问题:如果视频暂停,如何中止/删除/睡眠延迟功能? (然后当视频再次播放时 - 设置新的延迟功能然后隐藏字幕) 各位先生,谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

这应该有效:

$('.sub').stop(true)