Spec-Zone.ru › Web APIs

MediaSession: метод setPositionState()

Ограниченная доступность

Эта функция не является Baseline, так как она не работает во всех популярных браузерах.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Метод setPositionState() интерфейса MediaSession используется для обновления текущей позиции и скорости воспроизведения медиа в документе для отображения устройством пользователя в любом интерфейсе, отображающем информацию о текущем воспроизведении. Это особенно полезно, если ваш код реализует проигрыватель для типа медиа, не поддерживаемого браузером напрямую.

Вызывайте этот метод на объекте mediaSession объекта navigator.

Синтаксис

setPositionState()
setPositionState(stateDict)

Параметры

stateDict Необязательно

Объект, предоставляющий обновлённую информацию о позиции и скорости воспроизведения текущего медиа. Если объект пуст, существующая информация о состоянии воспроизведения очищается. Этот объект может содержать следующие параметры:

duration Необязательно

Значение с плавающей точкой, представляющее полную продолжительность текущего медиа в секундах. Это значение всегда должно быть положительным, положительная бесконечность (Infinity) указывает на медиа без определённого конца, например, прямую трансляцию.

playbackRate Необязательно

Значение с плавающей точкой, указывающее скорость воспроизведения медиа в отношении его нормальной скорости. Таким образом, значение 1 соответствует нормальной скорости, 2 — удвоенной скорости и т. д. Отрицательные значения указывают на обратное воспроизведение; -1 — воспроизведение с нормальной скоростью, но в обратном направлении, -2 — в два раза быстрее в обратном направлении и т. д.

position Необязательно

Значение с плавающей точкой, указывающее последнюю зарегистрированную позицию воспроизведения медиа в секундах. Это значение всегда должно быть положительным.

Возвращаемое значение

None (undefined).

Исключения

TypeError

Эта ошибка может возникнуть в следующих ситуациях:

  • У указанного объекта отсутствует duration, он отрицательный или null.
  • Его position отрицательное или больше, чем duration.
  • Его playbackRate равно нулю.

Примеры

Ниже представлена функция, обновляющая состояние позиции текущего трека MediaSession.

function updatePositionState() {
  navigator.mediaSession.setPositionState({
    duration: audioEl.duration,
    playbackRate: audioEl.playbackRate,
    position: audioEl.currentTime,
  });
}

Мы можем использовать эту функцию при обновлении MediaMetadata и внутри обратных вызовов для действий, как показано ниже.

navigator.mediaSession.setActionHandler("seekbackward", (details) => {
  // our time to skip
  const skipTime = details.seekOffset || 10;

  // set our position
  audioEl.currentTime = Math.max(audioEl.currentTime - skipTime, 0);
  updatePositionState();
});

Спецификации

Спецификация
Media Session
# dom-mediasession-setpositionstate

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
setPositionState 81 81 82 68 15 57
82Firefox предоставляет доступ к API, но не предоставляет соответствующий интерфейс управления медиа для пользователя.
43 15 7.0 Нет

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/MediaSession/setPositionState

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API