Ответы:
Вы можете добавить прослушиватель событий с «окончен» в качестве первого параметра
Как это :
<video src="video.ogv" id="myVideo">
video not supported
</video>
<script type='text/javascript'>
document.getElementById('myVideo').addEventListener('ended',myHandler,false);
function myHandler(e) {
// What you want to do after the event
}
</script>
if(!e) { e = window.event; }
утверждение, что этот ответ изначально включал, является специфичным для IE кодом для получения последнего события из обработчика событий, прикрепленного attachEvent
к более ранним версиям IE. Поскольку в этом случае к нему подключается обработчик addEventListener
(а ранние версии IE не имеют отношения к людям, имеющим дело с HTML5-видео), он был совершенно ненужным, и я удалил его.
Взгляните на это все, что вам нужно знать о видео и аудио посте HTML5 на сайте Opera Dev в разделе «Я хочу развернуть свои собственные элементы управления».
Это соответствующий раздел:
<video src="video.ogv">
video not supported
</video>
тогда вы можете использовать:
<script>
var video = document.getElementsByTagName('video')[0];
video.onended = function(e) {
/*Do things here!*/
};
</script>
onended
является стандартным событием HTML5 для всех элементов мультимедиа, см. документацию по событиям элемента мультимедиа HTML5 (видео / аудио) .
Jquery
$("#video1").bind("ended", function() {
//TO DO: Your code goes here...
});
HTML
<video id="video1" width="420">
<source src="path/filename.mp4" type="video/mp4">
Your browser does not support HTML5 video.
</video>
Типы событий HTML Audio и Video DOM Reference
.on()
был предпочтительным по сравнению .bind()
с jQuery 1.7, который был выпущен в 2011 году. Также, пожалуйста, отформатируйте ваш код правильно.
Вот полный пример, надеюсь, это поможет =).
<!DOCTYPE html>
<html>
<body>
<video id="myVideo" controls="controls">
<source src="your_video_file.mp4" type="video/mp4">
<source src="your_video_file.mp4" type="video/ogg">
Your browser does not support HTML5 video.
</video>
<script type='text/javascript'>
document.getElementById('myVideo').addEventListener('ended',myHandler,false);
function myHandler(e) {
if(!e) { e = window.event; }
alert("Video Finished");
}
</script>
</body>
</html>
Вот простой подход, который срабатывает, когда видео заканчивается.
<html>
<body>
<video id="myVideo" controls="controls">
<source src="video.mp4" type="video/mp4">
etc ...
</video>
</body>
<script type='text/javascript'>
document.getElementById('myVideo').addEventListener('ended', function(e) {
alert('The End');
})
</script>
</html>
В строке «EventListener» замените слово «закончилась» на «пауза» или «воспроизведение», чтобы также захватить эти события.
Вы можете добавить слушателя все видео события, кроме того, ended, loadedmetadata, timeupdate
где ended
функция вызывается, когда видео заканчивается
$("#myVideo").on("ended", function() {
//TO DO: Your code goes here...
alert("Video Finished");
});
$("#myVideo").on("loadedmetadata", function() {
alert("Video loaded");
this.currentTime = 50;//50 seconds
//TO DO: Your code goes here...
});
$("#myVideo").on("timeupdate", function() {
var cTime=this.currentTime;
if(cTime>0 && cTime % 2 == 0)//Alerts every 2 minutes once
alert("Video played "+cTime+" minutes");
//TO DO: Your code goes here...
var perc=cTime * 100 / this.duration;
if(perc % 10 == 0)//Alerts when every 10% watched
alert("Video played "+ perc +"%");
});
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<video id="myVideo" controls="controls">
<source src="your_video_file.mp4" type="video/mp4">
<source src="your_video_file.mp4" type="video/ogg">
Your browser does not support HTML5 video.
</video>
</body>
</html>