aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/web/api/mediadevices/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/pt-br/web/api/mediadevices/index.html')
-rw-r--r--files/pt-br/web/api/mediadevices/index.html251
1 files changed, 251 insertions, 0 deletions
diff --git a/files/pt-br/web/api/mediadevices/index.html b/files/pt-br/web/api/mediadevices/index.html
new file mode 100644
index 0000000000..83e3452f58
--- /dev/null
+++ b/files/pt-br/web/api/mediadevices/index.html
@@ -0,0 +1,251 @@
+---
+title: MediaDevices
+slug: Web/API/MediaDevices
+translation_of: Web/API/MediaDevices
+---
+<div>{{APIRef("Media Capture and Streams")}}{{SeeCompatTable}}</div>
+
+<p><span class="seoSummary">As interfaces <strong><code>MediaDevices</code></strong> proporcionam accesso aos dispositivos de entrada de midia conectados, como câmeras e microfones, bem como compartilhamento de tela. Essencialmente, isso te permite obter acesso a qualquer mídia gerada pelo hardware.</span></p>
+
+<h2 id="Propriedades">Propriedades</h2>
+
+<p><em>As mesmas propriedades de {{domxref("EventTarget")}}.</em></p>
+
+<h3 id="Handlers" name="Handlers">Manipuladores de Evento</h3>
+
+<dl>
+ <dt>{{ domxref("MediaDevices.ondevicechange") }}</dt>
+ <dd>O manipulador de evento para o evento {{event("devicechange")}}. Esse evento é entregue ao objeto <code>MediaDevices</code> quando uma entrada de mídia ou dispositivo de saída é conectado ou removido do computador do usuário.</dd>
+</dl>
+
+<h2 id="Métodos">Métodos</h2>
+
+<p><em>Mesmos métodos de {{domxref("EventTarget")}}.</em></p>
+
+<dl>
+ <dt>{{ domxref("EventTarget.addEventListener()") }}</dt>
+ <dd>Registra um manipulador de eventos para um tipo específico de evento.</dd>
+ <dt>{{ domxref("MediaDevices.enumerateDevices()") }}</dt>
+ <dd>Obtém um array de informações sobre a entrada de midia e dispositivos de saída disponíveis no sistema.</dd>
+ <dt>{{domxref("MediaDevices.getSupportedConstraints()")}}</dt>
+ <dd>Retorna um objeto consoante com {{domxref("MediaTrackSupportedConstraints")}} indicando quais propriedades restritivas são suportadas na interface {{domxref("MediaStreamTrack")}}. Veja {{SectionOnPage("/en-US/docs/Web/API/Media_Streams_API", "Capabilities and constraints")}} para aprender mais sobre restrições e como usá-las.</dd>
+ <dt>{{ domxref("MediaDevices.getUserMedia()") }}</dt>
+ <dd>Após a permissão do usuário (pedida através de um prompt), liga a câmera, microfone e/ou a tramissão de tela no sistema e fornece uma {{domxref("MediaStream")}} contendo uma faixa de vídeo e/ou áudio com a entrada.</dd>
+ <dt>{{ domxref("EventTarget.removeEventListener()") }}</dt>
+ <dd>Remove um escutador de evento.</dd>
+</dl>
+
+<h2 id="Exemplo">Exemplo</h2>
+
+<pre class="brush:js">'use strict';
+
+// Coloca as variáveis no escopo global para torná-las disponível para o Console do navegador.
+var video = document.querySelector('video');
+var constraints = window.constraints = {
+ audio: false,
+ video: true
+};
+var errorElement = document.querySelector('#errorMsg');
+
+navigator.mediaDevices.getUserMedia(constraints)
+.then(function(stream) {
+ var videoTracks = stream.getVideoTracks();
+ console.log('Got stream with constraints:', constraints);
+ console.log('Using video device: ' + videoTracks[0].label);
+ stream.onremovetrack = function() {
+ console.log('Stream ended');
+ };
+ window.stream = stream; // torna as variáveis disponíveis para o Console do navegador
+ video.srcObject = stream;
+})
+.catch(function(error) {
+ if (error.name === 'ConstraintNotSatisfiedError') {
+ errorMsg('A resolução ' + constraints.video.width.exact + 'x' +
+ constraints.video.width.exact + ' px não é suportada pelo seu dispositivo.');
+ } else if (error.name === 'PermissionDeniedError') {
+ errorMsg('As permissões para usar sua câmera e microfone não foram fornecidas. ' +
+ 'Você precisa permitir o acesso da página aos seus dispositivos para ' +
+ 'que a demo funcione.');
+ }
+ errorMsg('getUserMedia error: ' + error.name, error);
+});
+
+function errorMsg(msg, error) {
+ errorElement.innerHTML += '&lt;p&gt;' + msg + '&lt;/p&gt;';
+ if (typeof error !== 'undefined') {
+ console.error(error);
+ }
+}</pre>
+
+<h2 id="Especificações">Especificações</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Especificação</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comentário</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Media Capture', '#mediadevices', 'MediaDevices')}}</td>
+ <td>{{Spec2('Media Capture')}}</td>
+ <td>Definição inicial</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilidade">Compatibilidade</h2>
+
+<div>{{CompatibilityTable}}</div>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Recurso</th>
+ <th>Chrome</th>
+ <th>Edge</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>Suporte Básico</td>
+ <td>{{CompatChrome(47)}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoDesktop("36.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatOpera(30)}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td><code>enumerateDevices()</code></td>
+ <td>{{CompatChrome(51)}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatOpera(38)}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td><code>getSupportedConstraints()</code></td>
+ <td>{{CompatChrome(53)}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoDesktop(44)}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatOpera(40)}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td>Eventos <code>ondevicechange</code> e <code>devicechange</code></td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoDesktop(51)}}<sup>[1]</sup></td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td>Captura de áudio estéreo</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoDesktop(55)}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Recurso</th>
+ <th>Android Webview</th>
+ <th>Chrome para Android</th>
+ <th>Edge</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ <th>Chrome para Android</th>
+ </tr>
+ <tr>
+ <td>Suporte Básico</td>
+ <td>{{CompatChrome(47)}}</td>
+ <td>{{CompatChrome(47)}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoMobile("36.0")}}</td>
+ <td>2.2</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatOperaMobile(30)}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td><code>enumerateDevices()</code></td>
+ <td>{{CompatChrome(51)}}</td>
+ <td>{{CompatChrome(51)}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatOperaMobile(38)}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td><code>getSupportedConstraints()</code></td>
+ <td>{{CompatChrome(53)}}</td>
+ <td>{{CompatChrome(52)}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoMobile(50)}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatOperaMobile(40)}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td>Eventos <code>ondevicechange</code> e <code>devicechange</code></td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoMobile(51)}}<sup>[1]</sup></td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td>Captura de áudio estéreo</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>[1] O suporte para o evento <code>devicechange</code> e para {{domxref("MediaDevices.ondevicechange")}} começou no Firefox 51, mas <em>somente pra Mac</em>, e desabilitado por padrão. Ele pode ser habilitado configurando a preferência <code>media.ondevicechange.enabled</code> para <code>true</code>. O suporte para esse evendo foi adicionado para Linux e Windows — ativado por padrão — a partir do Firefox 52.</p>
+</div>
+
+<h2 id="Veja_também">Veja também</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/API/Media_Streams_API">Media Capture and Streams API</a>: A API desta interface faz parte..</li>
+ <li><a href="/en-US/docs/Web/API/WebRTC_API">WebRTC API</a></li>
+ <li>{{domxref("Navigator.mediaDevices")}}: Retorna uma referência para um objeto <code>MediaDevices</code> que pode ser usado para acessar dispositivos.</li>
+ <li><a href="https://github.com/chrisjohndigital/CameraCaptureJS">CameraCaptureJS:</a> Captura de vídeo e playback em HTML5 usando <em>MediaDevices</em> e a <em>MediaStream Recording API</em> (<a href="https://github.com/chrisjohndigital/CameraCaptureJS">código no GitHub</a>)</li>
+ <li><a href="https://github.com/chrisjohndigital/OpenLang">OpenLang</a>: Aplicação web de laboratório de linguagem de vídeo HTML5 usando <em>MediaDevices </em>e <em>MediaStream Recording API</em> para gravação de video (<a href="https://github.com/chrisjohndigital/OpenLang">código no GitHub</a>)</li>
+</ul>