Spec-Zone.ru › Web APIs

MediaSource: isTypeSupported() статический метод

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

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

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

Примечание: Эта функция доступна в Посвященных веб-рабочих потоках.

Статический метод MediaSource.isTypeSupported() возвращает логическое значение, которое является true в случае, если заданный тип MIME и (необязательный) кодек, вероятно, будут поддерживаться текущим агентом пользователя.

То есть, если он может успешно создать SourceBuffer объекты для этого типа медиаданных. Если возвращаемое значение false, значит агент пользователя уверен, что он не может получить доступ к медиафайлам указанного формата.

Синтаксис

MediaSource.isTypeSupported(type)

Параметры

type

Строка, определяющая тип MIME медиа и (необязательно) codecs параметр, содержащий список поддерживаемых кодеков через запятую.

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

Значение false в случае, если медиафайлы данного типа не будут воспроизводиться.

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

Все веб-API, работающие с медиафайлами, используют подход «нет/возможно/вероятно» (или, в данном случае, «нет или вероятно») при определении возможности использования типа медиа. Это происходит потому, что медиафайлы — сложные, запутанные структуры с слишком многими незначительными вариациями, чтобы быть абсолютно уверенными в чем-либо до фактического использования содержимого медиа.

Примеры

Следующий фрагмент взят из примера, написанного Ником Десаньер (посмотреть полную демо-версию или скачать исходный код для дальнейшего исследования). Функция getMediaSource(), которая не определена здесь, возвращает MediaSource.

const assetURL = "frag_bunny.mp4";
// Need to be specific for Blink regarding codecs
// ./mp4info frag_bunny.mp4 | grep Codec
const mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
let mediaSource;

if ("MediaSource" in window && MediaSource.isTypeSupported(mimeCodec)) {
  mediaSource = getMediaSource();
  console.log(mediaSource.readyState); // closed
  video.src = URL.createObjectURL(mediaSource);
  mediaSource.addEventListener("sourceopen", sourceOpen);
} else {
  console.error("Unsupported MIME type or codec: ", mimeCodec);
}

function sourceOpen() {
  console.log(this.readyState); // open
  const sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
  fetchAB(assetURL, (buf) => {
    sourceBuffer.addEventListener("updateend", () => {
      mediaSource.endOfStream();
      video.play();
      console.log(mediaSource.readyState); // ended
    });
    sourceBuffer.appendBuffer(buf);
  });
}

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

Спецификация
Расширения Media Source™
# dom-mediasource-istypesupported

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
isTypeSupported_static
23["codecs строка может содержать любой подмножество необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть выполнен отбор строки до символа)."]
12["codecs строка может содержать любой подмножество необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть выполнен отбор строки до символа)."]
42До Firefox 101, isTypeSupported() игнорировал codecs параметры для av01 кодеков (обращаясь с ними как av1).
15["codecs строка может содержать любой подмножество необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть выполнен отбор строки до символа)."]
8
25["codecs строка может содержать любой подмножество необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть выполнен отбор строки до символа)."]
41До Firefox 101, isTypeSupported() игнорировал codecs параметры для av01 кодеков (обращаясь с ними как av1).
14["codecs строка может содержать любой подмножество необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть выполнен отбор строки до символа)."]
13Доступно в Mobile Safari на iPad, но не на iPhone.
1.5["codecs строка может содержать любой подмножество необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть выполнен отбор строки до символа)."]
4.4.3["codecs строка может содержать любой подмножество необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть выполнен отбор строки до символа)."]

См. также

  • API расширений Media Source
  • Руководство по типам и форматам медиа на веб-страницах
  • Кодеки в распространенных типах медиа
  • SourceBuffer
  • SourceBufferList

© 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/MediaSource/isTypeSupported_static

Spec-Zone.ru

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