JS властивість Event.ended


Загальний опис

Подія ended спрацьовує, коли медіафайл, такий як аудіо або відео, досягає кінця свого відтворення. Це корисно для того, щоб виконати певні дії, як-от перезавантаження відео або показ повідомлення користувачеві після завершення перегляду контенту. Ця подія не спрацьовує під час паузи або зупинки відтворення — вона викликається лише після повного програвання медіафайлу.

Щоб використовувати ended, потрібно прив'язати цю подію до елемента через метод addEventListener. Наприклад:

const video = document.querySelector('video');
video.addEventListener('ended', function() {
  alert('Відео завершено!');
});

У цьому прикладі, коли відео досягає кінця, з'являється сповіщення для користувача. Подія ended доступна для різних медіафайлів, таких як аудіо, відео та інші елементи, що підтримують програвання. Це дозволяє вам контролювати поведінку після завершення контенту, наприклад, автоматично запускати наступне відео або оновлювати статус в інтерфейсі користувача.

Якщо потрібно виконати щось більше, ніж просто повідомити користувача, можна запускати складні сценарії. Наприклад, ви можете оновити інтерфейс користувача, додати медіафайл до списку відтворених або навіть відправити аналітичні дані на сервер.

const audio = document.querySelector('audio');
audio.addEventListener('ended', function() {
  console.log('Аудіо завершено, відправляємо дані...');
  // Відправляємо дані на сервер
  fetch('/track-completion', {
    method: 'POST',
    body: JSON.stringify({ trackId: audio.src }),
  });
});

Таким чином, можна інтегрувати цю подію у ваш веб-додаток для автоматизації різних процесів, що відбуваються після завершення медіаконтенту. Варто зазначити, що подія ended не підтримує нативних параметрів для скасування або запобігання її виконання, як це роблять деякі інші події. Її основна задача — інформувати про завершення відтворення, а не втручатися в сам процес відтворення або взаємодію з користувачем під час програвання.

автор: Bond

Порада

Перевіряйте, чи відбувається подія через дочасне завершення відтворення, наприклад, через досягнення кінця файлу під час паузи. Це можна виявити через використання додаткових подій на кшталт pause або timeupdate.

автор: Bond
Порада

Для оптимізації коду краще відписатися від події ended, якщо більше не потрібно її відстежувати. Використовуйте метод removeEventListener для запобігання небажаним спрацюванням події або втраті ресурсів.

автор: Bond
Порада

Можна комбінувати подію ended з іншими подіями, такими як play, щоб відстежувати повну поведінку відтворення і створювати складні логіки для користувача, наприклад, додавання наступного треку у чергу.

автор: Bond

Синтаксис

element.addEventListener('ended', function() {
  // Код, що виконується при завершенні
});

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
66 57 11.1 53 16
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
66 66 57 11.3
Підтримка: серверні переглядачі
Переглядач Node.js Deno
15.0.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

Цей приклад показує, як можна реалізувати функцію автоматичного повторного відтворення відео після його завершення. Подія ended скидає таймер відео на початок і автоматично відтворює його знову.

HTML

<video width="320" height="180" controls>
    <source src="film.mp4" type="video/mp4">
</video>

JS

const video = document.querySelector('video');
video.addEventListener('ended', function() {
  video.currentTime = 0;
  video.play();
});
автор: Bond

У цьому прикладі подія ended використовується для автоматичного завантаження наступного треку з сервера після завершення поточного. Це може бути корисно для аудіо-плеєрів або музичних платформ.

HTML

<audio controls>
    <source src="melody.mp3" type="audio/mpeg">
</audio>

JS

const track = document.querySelector('audio');
track.addEventListener('ended', function() {
  fetchNextTrack().then(nextTrack => {
    track.src = nextTrack;
    track.play();
  });
});
автор: Bond

Цей приклад реалізує відеоплеєр з кнопкою, що дозволяє завантажувати інше відео після завершення поточного. Коли користувач натискає на кнопку, відтворюється інший відеофайл, і текст повідомляє про статус відео. Подія ended спрацьовує автоматично, коли відео досягає кінця, що оновлює статус сторінки.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід