Как получить текущее время и продолжительность видео/аудио: подробное руководство

При работе с видео- или аудиофайлами часто возникает необходимость получить информацию о текущем времени и продолжительности воспроизведения мультимедиа. Независимо от того, создаете ли вы медиаплеер, реализуете отслеживание прогресса или создаете интерактивные функции, важно знать, как получить эту информацию. В этой статье мы рассмотрим различные методы получения текущего времени и продолжительности видео/аудиофайлов, а также примеры кода для каждого подхода.

Методы получения текущего времени и продолжительности:

  1. Элемент видео/аудио HTML5.
    Элемент видео/аудио HTML5 предоставляет встроенный API для доступа к медиаинформации, включая текущее время и продолжительность. Вот пример использования JavaScript:
const media = document.querySelector('video'); // Replace 'video' with the appropriate selector for your media element
// Retrieve current time
const currentTime = media.currentTime;
// Retrieve duration
const duration = media.duration;
  1. API-интерфейсы JavaScript для мультимедиа.
    JavaScript предоставляет дополнительные API-интерфейсы для работы с медиа-файлами, например HTMLMediaElementи MediaElementAudioSourceNode. Вот пример:
const media = new Audio('audio.mp3'); // Replace 'audio.mp3' with the path to your audio file
// Retrieve current time
const currentTime = media.currentTime;
// Retrieve duration
const duration = media.duration;
  1. Метаданные мультимедиа.
    Перед воспроизведением видео или аудио вы можете получить его метаданные с помощью события loadedmetadata. Вот пример:
const media = document.querySelector('video');
media.addEventListener('loadedmetadata', () => {
  // Retrieve current time
  const currentTime = media.currentTime;
  // Retrieve duration
  const duration = media.duration;
});
  1. Внешние библиотеки/фреймворки.
    Существует несколько популярных библиотек/фреймворков JavaScript, таких как Video.js, Plyr и Howler.js, которые предоставляют сложные функции медиаплеера, включая доступ к текущему времени и продолжительности.

Вот пример использования Video.js:

const player = videojs('my-video'); // Replace 'my-video' with the ID of your video element
// Retrieve current time
const currentTime = player.currentTime();
// Retrieve duration
const duration = player.duration();

Получение текущего времени и продолжительности видео/аудиофайлов имеет решающее значение для создания интерактивных мультимедийных возможностей. В этой статье мы рассмотрели несколько методов выполнения этой задачи: от использования видео/аудио элементов HTML5 и API-интерфейсов JavaScript до использования внешних библиотек/фреймворков. Внедрив эти методы, вы будете хорошо подготовлены к разработке надежных мультимедийных приложений.