2017-03-22 19 views
0

我为我的视频制作字幕系统。现在我处于字幕的阶段 - 一个带有文字的盒子应该在特定的时间和特定的位置上显示,然后在X秒后淡出。但是我坚持这样做:如果我在显示字幕时将视频暂停 - 我希望它保持显示状态,但它耗尽了x秒并且无论如何都隐藏了。中止|如果视频被暂停,请取消delay()函数(即使延迟未完成,也不要再延迟)

问题:如果视频暂停,如何使字幕框保持显示,而不管延迟功能如何?当视频在播放小标题时播放后播放 - 计算剩余秒数(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'); } 
    }) 
} 
}); 

正如你所看到的 - 我已经尝试添加spesific类时,视频播放和添加延迟功能的那类,那么如果视频pauzed - 去除类。正如我虽然通过删除班,我会放弃延迟功能。但是,这并没有奏效。 :( 因此,最后一个问题:如果视频被暂停,如何中止/移除/休眠延迟功能?(然后当视频再次播放时 - 设置新的延迟功能,然后隐藏字幕) 预先感谢您的帮助,人

回答

0

这应该工作:

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

谢谢老兄它的工作! – Aneyeball