2017-03-27 52 views
1

我有一个HTML 5播放器,我试图检测视频完成时。我试图用JQUERY和JavaScript检测它到目前为止没有运气。事件监听器不检测视频的完成

<video id="myVideo"></video> 

$("#myVideo").bind("ended", function() { 
    alert('Video ended!'); 
}); 

var vid = document.getElementById("myVideo"); 
vid.src = "Content/Test.mp4"; 
vid.play(); 

vid.addEventListener('ended', videoFinish, false); 

function videoFinish() { 
    alert('Video ended!'); 
} 
+0

我认为你必须有一个视频......不只是一个视频标签可能?没有媒体的视频标签如何“结束”?另外,您的JavaScript需要位于'

1

试试这个

$('#myVideo').on('ended',function(){ 
      alert('Video ended!'); 
} 

或者

<video src="video/endscene.mp4" id="myVideo" controls onended="videoEnded()"> 
+1

这应该不会有什么不同,相比已有的 –

+1

我记得使用第二个很久以前,它的工作。我同意这只是“asker”做同样事情的另一种方式,但它对我来说就是这样。此外,我给了适当的方式把视频控制在HTML中。我认为问题在这里。 –

+0

有趣的,也许它修复了我猜测的问题正在发生 –

1

我怀疑这是因为你在程序中添加SRC或播放视频(但只能去猜测你没有回复我的问题)。尝试添加该事件的视频加载后:

function onVideoLoaded(e) { 
    console.log('onVideoLoaded', e.target === vid); 
    vid.addEventListener('ended', onVideoEnded); 
} 

function onVideoEnded() { 
    console.log('onVideoEnded'); 
} 

vid.addEventListener('loadstart', onVideoLoaded);