1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
---
title: MediaStream
slug: Web/API/MediaStream
tags:
- API
- Media Streams API
- MediaStream
- Reference
- TopicStub
- WebRTC
- Интерфейс
translation_of: Web/API/MediaStream
---
<p>{{APIRef("Media Capture and Streams")}}</p>
<p><span class="seoSummary">Интерфейс <strong><code>MediaStream</code></strong> представляет поток медиа данных. Поток состоит из нескольких <strong>треков</strong>, таких как видео и аудио треки. Каждый трек является экземпляром {{domxref("MediaStreamTrack")}}. MediaStream можно получить либо с помощью конструктора, либо вызовом {{domxref("MediaDevices.getUserMedia()")}}.</span></p>
<p>Некоторые агенты предоставляют подклассы, чтобы привести более точную информацию или расширить функциональность, например {{domxref("CanvasCaptureMediaStream")}}.</p>
<h2 id="Конструктор">Конструктор</h2>
<dl>
<dt>{{domxref("MediaStream.MediaStream", "MediaStream()")}}</dt>
<dd>Создаёт и возвращает новый объект MediaStream. Можно создать пустой поток, поток, основанный на существующем или содержащий указанный список треков (массив объектов {{domxref("MediaStreamTrack")}}).</dd>
</dl>
<h2 id="Свойства">Свойства</h2>
<p><em>Этот интерфейс наследует свойства своего родителя, </em><em>{{domxref("EventTarget")}}.</em></p>
<dl>
</dl>
<dl>
<dt>{{domxref("MediaStream.active")}} {{readonlyinline}}</dt>
<dd>Возвращает <code>true</code>, если <code>MediaStream</code> активен, иначе <code>false</code>.</dd>
<dt>{{domxref("MediaStream.ended")}} {{readonlyInline}} {{obsolete_inline()}}</dt>
<dd>Возвращает <code style="font-size: 14px;">true</code>, если достигнут конец потока. Это свойство удалено из спецификации; следует проверять свойство {{domxref("MediaStreamTrack.readyState")}}, которое имеет значение <code>"ended"</code> у завершённых треков.</dd>
</dl>
<dl>
<dt>{{domxref("MediaStream.id")}} {{readonlyInline}}</dt>
<dd>Объект {{domxref("DOMString")}}, содержащий 36 символов универсального уникального идентификатора (UUID) потока.</dd>
</dl>
<h3 id="Обработчики_событий">Обработчики событий</h3>
<dl>
<dt>{{domxref("MediaStream.onaddtrack")}}</dt>
<dd>Объект {{domxref("EventHandler")}}, содержащий действие, которое должно выполняться, когда случается событие {{event("addtrack")}} при добавлении нового объекта {{domxref("MediaStreamTrack")}}.</dd>
<dt>{{domxref("MediaStream.onremovetrack")}}</dt>
<dd>Объект {{domxref("EventHandler")}}, содержащий действие, которое должно выполняться, когда случается событие {{event("removetrack")}} при удалении объекта {{domxref("MediaStreamTrack")}}.</dd>
</dl>
<h2 id="Методы">Методы</h2>
<p><em>Этот интерфейс наследует методы своего родителя, </em><em>{{domxref("EventTarget")}}.</em></p>
<dl>
<dt>{{domxref("MediaStream.addTrack()")}}</dt>
<dd>Сохраняет копию данного объекта {{domxref("MediaStreamTrack")}}. Если данный трек добавлялся в <code>MediaStream</code> ранее, ничего не происходит.</dd>
</dl>
<dl>
<dt>{{domxref("MediaStream.clone()")}}</dt>
<dd>Возвращает точную копию объекта <code>MediaStream</code>. Исключение составляет значение {{domxref("MediaStream.id", "id")}}, которое изменится на новое уникальное.</dd>
</dl>
<dl>
<dt><span style="line-height: 1.572;">{{domxref("MediaStream.getAudioTracks()")}}</span></dt>
<dd><span style="line-height: 1.572;">Возвращает список объектов {{domxref("MediaStreamTrack")}}, хранимых в объекте </span><code style="font-size: 14px;">MediaStream</code><span style="line-height: 1.572;"> с атрибутом </span><code style="font-size: 14px;">kind</code><span style="line-height: 1.572;"> имеющим значение </span><code style="font-size: 14px;">"audio"</code><span style="line-height: 1.572;">. Порядок не определён и может меняться между браузерами, а также между вызовами.</span></dd>
</dl>
<dl>
<dt>{{domxref("MediaStream.getTrackById()")}}</dt>
<dd>Возвращает трек с <code style="font-size: 14px;">trackid</code> соответствующем данному. Если в метод не передано аргументов или трека с данным ID нет, возвращает <code>null</code>. Если несколько треков имеют одинаковый ID, возвращает первый из них.</dd>
<dt>{{domxref("MediaStream.getTracks()")}}</dt>
<dd>Возвращает список всех объектов {{domxref("MediaStreamTrack")}}, сохранённых в объекте <code>MediaStream</code>, вне зависимости от значения их свойства <code>kind</code>. Порядок не определён и может меняться между браузерами, а также между вызовами.</dd>
</dl>
<dl>
<dt>{{domxref("MediaStream.getVideoTracks()")}}</dt>
<dd><span style="line-height: 1.572;">Возвращает список объектов {{domxref("MediaStreamTrack")}}, хранимых в объекте </span><code style="font-size: 14px;">MediaStream</code><span style="line-height: 1.572;"> с атрибутом </span><code style="font-size: 14px;">kind</code><span style="line-height: 1.572;"> имеющим значение </span><code style="font-size: 14px;">"video"</code><span style="line-height: 1.572;">. Порядок не определён и может меняться между браузерами, а также между вызовами.</span></dd>
</dl>
<dl>
<dt>{{domxref("MediaStream.removeTrack()")}}</dt>
<dd>Удаляет данный объект {{domxref("MediaStreamTrack")}}. Если данный трек не сохранён в объекте <code style="font-size: 14px;">MediaStream</code>, ничего не происходит.</dd>
</dl>
<h2 id="События">События</h2>
<dl>
<dt><code><a href="/en-US/docs/Web/API/MediaStream/addtrack_event">addtrack</a></code></dt>
<dd>Вызывается при добавлении нового объекта {{domxref("MediaStreamTrack")}}.<br>
Также доступно как свойство <code><a href="/en-US/docs/Web/API/MediaStream/onaddtrack">onaddtrack</a></code>.</dd>
<dt><code><a href="/en-US/docs/Web/API/MediaStream/removetrack_event">removetrack</a></code></dt>
<dd>Вызывается при удалении объекта {{domxref("MediaStreamTrack")}}.<br>
Также доступно как свойство <code><a href="/en-US/docs/Web/API/MediaStream/onremovetrack">onremovetrack</a></code>.</dd>
</dl>
<h2 id="Спецификации">Спецификации</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
<tr>
<td>{{SpecName('Media Capture', '#dom-mediastream', 'MediaStream')}}</td>
<td>{{Spec2('Media Capture')}}</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
<div class="hidden">
<p>The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
</div>
<p>{{Compat("api.MediaStream")}}</p>
<h2 id="Смотрите_также">Смотрите также</h2>
<ul>
<li>Использование интерфейса MediaStream</li>
<li><a href="/en-US/docs/Web/API/WebRTC_API">WebRTC API</a></li>
<li><a href="/en-US/docs/Web/API/Web_Audio_API">Web Audio API</a></li>
<li>{{domxref("MediaStreamTrack")}}</li>
</ul>
|