JS властивість Event.durationchange
Загальний опис
durationchange
— це подія, яка спрацьовує, коли змінюється тривалість медіафайлу (наприклад, аудіо або відео). Ця подія важлива, коли тривалість мультимедійного контенту стає відомою або змінюється внаслідок завантаження нового медіафайлу або зміни його джерела. Подія durationchange
використовується для динамічного оновлення елементів інтерфейсу, таких як таймкоди або прогрес-бари, що залежать від тривалості медіафайлу.
Коли браузер спочатку не знає тривалість медіафайлу, він встановлює її значення в NaN
(Not a Number). Коли тривалість стає відомою (наприклад, після завантаження метаданих), подія durationchange
спрацьовує, і тривалість оновлюється до нового значення. Подія також спрацьовує, якщо медіафайл замінюється іншим файлом, тривалість якого відрізняється. Наприклад:
const videoElement = document.getElementById('myVideo');
videoElement.addEventListener('durationchange', function(event) {
console.log(`Нова тривалість відео: ${videoElement.duration} секунд.`);
document.getElementById('durationDisplay').textContent = `Тривалість: ${videoElement.duration.toFixed(2)} секунд`;
});
У цьому прикладі, коли змінюється тривалість відеофайлу, консоль виводить нове значення тривалості, і це значення також відображається у елементі з ідентифікатором durationDisplay
.
Подія durationchange
часто використовується разом з іншими подіями медіафайлів, такими як loadedmetadata
(коли метадані медіафайлу, такі як розміри і тривалість, повністю завантажені) і timeupdate
(коли поточний час відтворення медіафайлу змінюється), щоб забезпечити повний контроль над відтворенням медіа на веб-сторінках. Ця подія дозволяє розробникам створювати більш інтерактивні та динамічні інтерфейси користувача, що реагують на зміни у відтворюваних медіафайлах.
Порада: | Використовуйте |
Порада: | Перевіряйте значення |
Порада: | Використовуйте |
Синтаксис
element.addEventListener('durationchange', function(event) {
// Ваш код тут
});
Значення
Return
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
66 |
57 |
11.1 |
53 |
16 |
Переглядач | ||||
---|---|---|---|---|
66 |
66 |
57 |
11.3 |
Переглядач | ||
---|---|---|
15.0.0 |
1.0 |
Приклади
У цьому прикладі користувач може обирати різні відеофайли зі списку, і при зміні тривалості медіа відображатиметься актуальна тривалість. Подія durationchange
забезпечує оновлення інформації при завантаженні нового відео, дозволяючи динамічно відображати тривалість навіть при підключенні різних медіафайлів.
У цьому прикладі подія durationchange
використовується для встановлення максимальної тривалості прогрес-бара після зміни тривалості аудіофайлу. Це забезпечує точну синхронізацію прогрес-бара з відтворенням аудіо.
const audioElement = document.getElementById('myAudio');
const progressBar = document.getElementById('progressBar');
audioElement.addEventListener('durationchange', function(event) {
progressBar.max = audioElement.duration;
console.log(`Тривалість аудіо змінено на: ${audioElement.duration} секунд.`);
});
audioElement.addEventListener('timeupdate', function(event) {
progressBar.value = audioElement.currentTime;
});
Цей приклад показує, як обробляти подію durationchange
після зміни джерела відеофайлу. Коли користувач обирає нове джерело, тривалість відео оновлюється, і відповідна інформація відображається на сторінці. Це корисно для динамічного управління медіа-контентом на веб-сторінках, де користувач може вибирати різні файли для відтворення.
const videoElement = document.getElementById('myVideo');
const sourceElement = document.getElementById('sourceSelector');
sourceElement.addEventListener('change', function(event) {
videoElement.src = event.target.value;
videoElement.load();
});
videoElement.addEventListener('durationchange', function(event) {
console.log(`Новий файл, тривалість відео: ${videoElement.duration} секунд.`);
document.getElementById('durationDisplay').textContent = `Тривалість: ${videoElement.duration.toFixed(2)} секунд`;
});