Відповіді:
Ви можете додати слухача події "закінченим" як перший парам
Подобається це :
<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 (відео / аудіо) події .
ПІДКЛЮЧЕННЯ
$("#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 Посилання на DOM для аудіо та відео
.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>