--- title: MediaStream slug: Web/API/MediaStream tags: - API - Media Streams API - MediaStream - Reference - TopicStub - WebRTC - Интерфейс translation_of: Web/API/MediaStream ---

{{APIRef("Media Capture and Streams")}}

Интерфейс MediaStream представляет поток медиа данных. Поток состоит из нескольких треков, таких как видео и аудио треки. Каждый трек является экземпляром {{domxref("MediaStreamTrack")}}. MediaStream можно получить либо с помощью конструктора, либо вызовом {{domxref("MediaDevices.getUserMedia()")}}.

Некоторые агенты предоставляют подклассы, чтобы привести более точную информацию или расширить функциональность, например {{domxref("CanvasCaptureMediaStream")}}.

Конструктор

{{domxref("MediaStream.MediaStream", "MediaStream()")}}
Создаёт и возвращает новый объект MediaStream. Можно создать пустой поток, поток, основанный на существующем или содержащий указанный список треков (массив объектов {{domxref("MediaStreamTrack")}}).

Свойства

Этот интерфейс наследует свойства своего родителя, {{domxref("EventTarget")}}.

{{domxref("MediaStream.active")}} {{readonlyinline}}
Возвращает true, если MediaStream активен, иначе false.
{{domxref("MediaStream.ended")}} {{readonlyInline}} {{obsolete_inline()}}
Возвращает true, если достигнут конец потока. Это свойство удалено из спецификации; следует проверять свойство {{domxref("MediaStreamTrack.readyState")}}, которое имеет значение "ended" у завершённых треков.
{{domxref("MediaStream.id")}} {{readonlyInline}}
Объект {{domxref("DOMString")}}, содержащий 36 символов универсального уникального идентификатора (UUID) потока.

Обработчики событий

{{domxref("MediaStream.onaddtrack")}}
Объект {{event("Event_handlers", "event handler")}}, содержащий действие, которое должно выполняться, когда случается событие {{event("addtrack")}} при добавлении нового объекта {{domxref("MediaStreamTrack")}}.
{{domxref("MediaStream.onremovetrack")}}
Объект {{event("Event_handlers", "event handler")}}, содержащий действие, которое должно выполняться, когда случается событие {{event("removetrack")}} при удалении объекта  {{domxref("MediaStreamTrack")}}.

Методы

Этот интерфейс наследует методы своего родителя, {{domxref("EventTarget")}}.

{{domxref("MediaStream.addTrack()")}}
Сохраняет копию данного объекта {{domxref("MediaStreamTrack")}}. Если данный трек добавлялся в MediaStream ранее, ничего не происходит.
{{domxref("MediaStream.clone()")}}
Возвращает точную копию объекта MediaStream. Исключение составляет значение {{domxref("MediaStream.id", "id")}}, которое изменится на новое уникальное.
{{domxref("MediaStream.getAudioTracks()")}}
Возвращает список объектов {{domxref("MediaStreamTrack")}}, хранимых в объекте MediaStream с атрибутом kind имеющим значение "audio". Порядок не определён и может меняться между браузерами, а также между вызовами.
{{domxref("MediaStream.getTrackById()")}}
Возвращает трек с trackid соответствующем данному. Если в метод не передано аргументов или трека с данным ID нет, возвращает null. Если несколько треков имеют одинаковый ID, возвращает первый из них.
{{domxref("MediaStream.getTracks()")}}
Возвращает список всех объектов {{domxref("MediaStreamTrack")}}, сохранённых в объекте MediaStream, вне зависимости от значения их свойства kind. Порядок не определён и может меняться между браузерами, а также между вызовами.
{{domxref("MediaStream.getVideoTracks()")}}
Возвращает список объектов {{domxref("MediaStreamTrack")}}, хранимых в объекте MediaStream с атрибутом kind имеющим значение "video". Порядок не определён и может меняться между браузерами, а также между вызовами.
{{domxref("MediaStream.removeTrack()")}}
Удаляет данный объект {{domxref("MediaStreamTrack")}}. Если данный трек не сохранён в объекте MediaStream, ничего не происходит.

События

addtrack
Вызывается при добавлении нового объекта {{domxref("MediaStreamTrack")}}.
Также доступно как свойство onaddtrack.
removetrack
Вызывается при удалении объекта {{domxref("MediaStreamTrack")}}.
Также доступно как свойство onremovetrack.

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

Specification Status Comment
{{SpecName('Media Capture', '#dom-mediastream', 'MediaStream')}} {{Spec2('Media Capture')}}

Поддержка браузерами

{{Compat("api.MediaStream")}}

Смотрите также