aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/api/navigator/getusermedia/index.html
blob: 664d4832e03dc0e7d7b56adab8e25daca67ed71b (plain)
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
---
title: Navigator.getUserMedia()
slug: Web/API/Navigator/getUserMedia
translation_of: Web/API/Navigator/getUserMedia
---
<div>{{APIRef("Media Capture and Streams")}}{{deprecated_header}}</div>

<p>The deprecated <code><strong>Navigator.getUserMedia()</strong></code> method prompts the user for permission to use up to one video input device (such as a camera or shared screen) and up to one audio input device (such as a microphone) as the source for a {{domxref("MediaStream")}}.</p>

<p>If permission is granted, a <code>MediaStream</code> whose video and/or audio tracks come from those devices is delivered to the specified success callback. If permission is denied, no compatible input devices exist, or any other error condition occurs, the error callback is executed with a {{domxref("MediaStreamError")}} object describing what went wrong. If the user instead doesn't make a choice at all, neither callback is executed.</p>

<div class="note">
<p><span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>Это устаревший метод.</span></span> <span class="ChMk0b JLqJ4b"><span>Вместо этого используйте более новую версию {{domxref ("MediaDevices.getUserMedia", "navigator.mediaDevices.getUserMedia ()")}}.</span></span> <span class="ChMk0b JLqJ4b"><span>Хотя технически не рекомендуется, эта старая версия колбэка помечена как таковая, поскольку спецификация настоятельно рекомендует использовать более новую версию, возвращающую промис.</span></span></span></p>
</div>

<h2 id="Синтаксис">Синтаксис</h2>

<pre class="syntaxbox">navigator.getUserMedia(<var>constraints</var>, <var>successCallback</var>, <var>errorCallback</var>);</pre>

<h3 id="Параметры">Параметры</h3>

<dl>
 <dt><code><var>constraints</var></code></dt>
 <dd>{{domxref("MediaStreamConstraints")}} <span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>объект, определяющий типы запрашиваемых медиа, а также любые требования для каждого типа.</span></span> <span class="ChMk0b JLqJ4b"><span>Подробнее см. В разделе ограничений современного метода {{domxref ("MediaDevices.getUserMedia ()")}}, а также в статье</span></span></span> <a href="/en-US/docs/Web/API/Media_Streams_API/Constraints">Возможности, ограничения и настройки.</a></dd>
 <dt><code><var>successCallback</var></code></dt>
 <dd><span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>Функция, которая вызывается при утверждении запроса на доступ к мультимедиа.</span></span> <span class="ChMk0b JLqJ4b"><span>Функция вызывается с одним параметром: объектом {{domxref ("MediaStream")}}, который содержит медиапоток.</span></span> <span class="ChMk0b JLqJ4b"><span>Затем колбэк может назначить поток желаемому объекту (например, элементу {{HTMLElement ("audio")}} или {{HTMLElement ("video")}}), как показано в следующем примере:</span></span></span>
 <pre class="brush: js">function(stream) {
   var video = document.querySelector('video');
   video.srcObject = stream;
   video.onloadedmetadata = function(e) {
      // Do something with the video here.
   };
}</pre>
 </dd>
 <dt><code><var>errorCallback</var></code></dt>
 <dd>When the call fails, the function specified in the <code>errorCallback</code> is invokedwith a {{domxref("MediaStreamError")}} object as its sole argument; this object is is modeled on {{domxref("DOMException")}}. See {anch("Errors")}} below for a list of the errors which can occur.</dd>
</dl>

<h3 id="Возвращающееся_значение">Возвращающееся значение</h3>

<p>{{domxref("undefined")}}.</p>

<h3 id="Ошибки">Ошибки</h3>

<p>{{page("/en-US/docs/Web/API/MediaDevices/getUserMedia", "Errors")}}</p>

<h2 id="Примеры">Примеры</h2>

<h3 id="Width_and_height_Ширина_и_высота">Width and height (Ширина и высота)</h3>

<p>Это пример использования <code>getUserMedia()</code> <span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>, включая код для работы с префиксами различных браузеров.</span></span> <span class="ChMk0b JLqJ4b"><span>Обратите внимание, что это устаревший способ сделать это: современные примеры см. В разделе «Примеры» в разделе {{domxref ("MediaDevices.getUserMedia ()")}}.</span></span></span></p>

<pre class="brush: js">navigator.getUserMedia = navigator.getUserMedia ||
                         navigator.webkitGetUserMedia ||
                         navigator.mozGetUserMedia;

if (navigator.getUserMedia) {
   navigator.getUserMedia({ audio: true, video: { width: 1280, height: 720 } },
      function(stream) {
         var video = document.querySelector('video');
         video.srcObject = stream;
         video.onloadedmetadata = function(e) {
           video.play();
         };
      },
      function(err) {
         console.log("The following error occurred: " + err.name);
      }
   );
} else {
   console.log("getUserMedia not supported");
}
</pre>

<h2 id="Разрешения">Разрешения</h2>

<p class="syntaxbox"><span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>Чтобы использовать</span></span></span><code>getUserMedia()</code><span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span><code> </code>в устанавливаемом приложении (например, приложении Firefox OS), вам необходимо указать одно или оба из следующих полей внутри файла манифеста:</span></span></span></p>

<pre class="brush: js">"permissions": {
  "audio-capture": {
    "description": "Required to capture audio using getUserMedia()"
  },
  "video-capture": {
    "description": "Required to capture video using getUserMedia()"
  }
}</pre>

<p><span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>См. Разрешение: аудио-захват и разрешение: видео-захват для получения дополнительной информации.</span></span></span></p>

<h2 id="Browser_compatibility">Browser compatibility</h2>

<div class="warning">
<p>New code should use {{domxref("Navigator.mediaDevices.getUserMedia()")}} instead.</p>
</div>



<p>{{Compat("api.Navigator.getUserMedia")}}</p>

<h2 id="See_also">See also</h2>

<ul>
 <li>{{domxref("MediaDevices.getUserMedia()")}} that replaces this deprecated method.</li>
 <li><a href="/en-US/docs/WebRTC">WebRTC</a> - the introductory page to the API</li>
 <li><a href="/en-US/docs/WebRTC/MediaStream_API">MediaStream API</a> - the API for the media stream objects</li>
 <li><a href="/en-US/docs/WebRTC/taking_webcam_photos">Taking webcam photos</a> - a tutorial on using <code>getUserMedia() for taking photos rather than video.</code></li>
</ul>