--- title: API de Captura de Transmissões de Multimédia (Media Streams) slug: Web/API/Media_Streams_API tags: - API - API de Transmissão de Multimédia - Audio - Avançado - Guía - Introdução - Media - Multimedia - Video translation_of: Web/API/Media_Streams_API original_slug: Web/API/API_transmissoes_multimedia --- <div>{{DefaultAPISidebar("Media Capture and Streams")}}</div> <p>A API de <em><strong>Media Capture and Streams</strong></em>, muitas vezes chamada de <em>Media Stream API</em> ou <em>Stream API</em>, é uma API relacionada com <a href="/pt-PT/docs/Web/API/API_WebRTC" title="/en-US/docs/WebRTC">WebRTC</a> que suporta transmissões de dados de áudio ou vídeo, os métodos para trabalhar com eles, as restrições associadas com o tipo de dados, as devoluções de retorno de sucesso e erro quando utilizar os dados de forma assíncrona, e os eventos que foram ativados durante o processo.</p> <h2 id="Conceitos_básicos">Conceitos básicos</h2> <p>The API is based on the manipulation of a {{domxref("MediaStream")}} object representing a flux of audio- or video-related data. See an example in <a href="/docs/Web/API/API_WebRTC/Tirar_fotografias" title="/en-US/docs/WebRTC/taking_webcam_photos#Get_the_video">Get the video</a>.</p> <p>A <code>MediaStream</code> consists of zero or more {{domxref("MediaStreamTrack")}} objects, representing various audio or video <strong>tracks</strong>. Each <code>MediaStreamTrack</code> may have one or more <strong>channels</strong>. The channel represents the smallest unit of a media stream, such as an audio signal associated with a given speaker, like <em>left</em> or <em>right</em> in a stereo audio track.</p> <p><code>MediaStream</code> objects have a single <strong>input</strong> and a single <strong>output</strong>. A <code>MediaStream</code> object generated by {{domxref("MediaDevices.getUserMedia", "getUserMedia()")}} is called <em>local</em>, and has as its source input one of the user's cameras or microphones. A non-local <code>MediaStream</code> may be representing to a media element, like {{HTMLElement("video")}} or {{HTMLElement("audio")}}, a stream originating over the network, and obtained via the WebRTC {{domxref("RTCPeerConnection")}} API, or a stream created using the <a href="/en-US/docs/Web_Audio_API" title="/en-US/docs/Web_Audio_API">Web Audio API</a> {{domxref("MediaStreamAudioSourceNode")}}. The output of the <code>MediaStream</code> object is linked to a <strong>consumer</strong>. It can be a media elements, like {{HTMLElement("audio")}} or {{HTMLElement("video")}}, the WebRTC {{domxref("RTCPeerConnection")}} API or a <a href="/en-US/docs/Web_Audio_API" title="/en-US/docs/Web_Audio_API">Web Audio API</a> {{domxref("MediaStreamAudioDestinationNode")}}.</p> <h2 id="Referência">Referência</h2> <div class="index"> <ul> <li>{{event("addtrack")}} (event)</li> <li>{{domxref("AudioStreamTrack")}}</li> <li>{{domxref("BlobEvent")}}</li> <li>{{event("ended")}} (event)</li> <li>{{domxref("MediaStream")}}</li> <li>{{domxref("MediaStreamTrack")}}</li> <li>{{domxref("MediaStreamTrackEvent")}}</li> <li>{{domxref("MediaTrackCapabilities")}}</li> <li>{{domxref("MediaTrackConstraints")}}</li> <li>{{domxref("MediaTrackSettings")}}</li> <li>{{domxref("MediaTrackSupportedConstraints")}}</li> <li>{{event("muted")}} (event)</li> <li>{{domxref("NavigatorUserMedia")}}</li> <li>{{domxref("NavigatorUserMediaError")}}</li> <li>{{event("overconstrained")}} (event)</li> <li>{{event("removetrack")}} (event)</li> <li>{{event("started")}} (event)</li> <li>{{event("unmuted")}} (event)</li> <li>{{domxref("URL")}}</li> <li>{{domxref("VideoStreamTrack")}}</li> </ul> </div> <h2 id="Guias_e_tutoriais">Guias e tutoriais</h2> <p>{{LandingPageListSubpages}}</p> <h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> <p>{{ CompatibilityTable }} </p> <div id="compat-desktop"> <table class="compat-table"> <tbody> <tr> <th>Funcionalidade</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Edge</th> <th>Internet Explorer</th> <th>Opera </th> <th>Safari (WebKit)</th> </tr> <tr> <td>Stream API </td> <td>21{{ property_prefix("webkit") }} </td> <td>Nightly 18{{ property_prefix("moz") }} </td> <td>{{ CompatVersionUnknown }}</td> <td>{{ CompatUnknown }} </td> <td>12</td> <td>{{ CompatUnknown }} </td> </tr> </tbody> </table> </div> <div id="compat-mobile"> <table class="compat-table"> <tbody> <tr> <th>Funcionalidade</th> <th>Android</th> <th>Edge</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>API de emissão</td> <td>{{ CompatNo }} </td> <td>{{CompatVersionUnknown}}</td> <td>{{ CompatUnknown }}</td> <td>{{ CompatUnknown }} </td> <td>{{ CompatNo }} </td> <td>{{ CompatNo }} </td> </tr> </tbody> </table> </div> <p> </p> <p>Currently using WebRTC for accessing the camera is supported in Chrome, Opera and Firefox Nightly 18. Enabling WebRTC in Firefox Nightly requires you to set a flag in the configuration:</p> <ul> <li>Type "about:config" in the address bar and say yes that you want to make changes</li> <li>Find the "media.navigator.enabled" entry and set it to true</li> </ul> <h2 id="Consulte_também">Consulte também</h2> <ul> <li><a href="/pt-PT/docs/Web/API/API_WebRTC" title="/en-US/docs/WebRTC">WebRTC</a> - a página introdutória para a API</li> <li>{{domxref("mediaDevices.getUserMedia()")}}</li> <li><a href="/pt-PT/docs/Web/API/API_WebRTC/Tirar_fotografias">Tirar fotografias com a câmara da <em>Web</em></a>: tutorial sobre como utilizar <code>getUserMedia()</code>.</li> </ul> <div id="SL_balloon_obj" style="display: block;"> <div class="SL_ImTranslatorLogo" id="SL_button" style="background: rgba(0, 0, 0, 0) repeat scroll 0% 0%; opacity: 0; display: block; left: -8px; top: -25px; transition: visibility 2s ease 0s, opacity 2s linear 0s;"> </div> <div id="SL_shadow_translation_result2" style="display: none;"> </div> <div id="SL_shadow_translator" style="display: none;"> <div id="SL_planshet"> <div id="SL_arrow_up" style="background: rgba(0, 0, 0, 0) repeat scroll 0% 0%;"> </div> <div id="SL_Bproviders"> <div class="SL_BL_LABLE_ON" id="SL_P0" title="Google">G</div> <div class="SL_BL_LABLE_ON" id="SL_P1" title="Microsoft">M</div> <div class="SL_BL_LABLE_ON" id="SL_P2" title="Translator">T</div> </div> <div id="SL_alert_bbl" style="display: none;"> <div id="SLHKclose" style="background: rgba(0, 0, 0, 0) repeat scroll 0% 0%;"> </div> <div id="SL_alert_cont"> </div> </div> <div id="SL_TB"> <table id="SL_tables"> <tbody> <tr> <td class="SL_td"><input></td> <td class="SL_td"><select><option value="auto">Detectar idioma</option><option value="af">Africâner</option><option value="sq">Albanês</option><option value="de">Alemão</option><option value="ar">Arabe</option><option value="hy">Armênio</option><option value="az">Azerbaijano</option><option value="eu">Basco</option><option value="bn">Bengali</option><option value="be">Bielo-russo</option><option value="my">Birmanês</option><option value="bs">Bósnio</option><option value="bg">Búlgaro</option><option value="ca">Catalão</option><option value="kk">Cazaque</option><option value="ceb">Cebuano</option><option value="ny">Chichewa</option><option value="zh-CN">Chinês (Simp)</option><option value="zh-TW">Chinês (Trad)</option><option value="si">Cingalês</option><option value="ko">Coreano</option><option value="ht">Crioulo haitiano</option><option value="hr">Croata</option><option value="da">Dinamarquês</option><option value="sk">Eslovaco</option><option value="sl">Esloveno</option><option value="es">Espanhol</option><option value="eo">Esperanto</option><option value="et">Estoniano</option><option value="fi">Finlandês</option><option value="fr">Francês</option><option value="gl">Galego</option><option value="cy">Galês</option><option value="ka">Georgiano</option><option value="el">Grego</option><option value="gu">Gujarati</option><option value="ha">Hauça</option><option value="iw">Hebraico</option><option value="hi">Hindi</option><option value="hmn">Hmong</option><option value="nl">Holandês</option><option value="hu">Húngaro</option><option value="ig">Igbo</option><option value="id">Indonésio</option><option value="en">Inglês</option><option value="yo">Ioruba</option><option value="ga">Irlandês</option><option value="is">Islandês</option><option value="it">Italiano</option><option value="ja">Japonês</option><option value="jw">Javanês</option><option value="kn">Kannada</option><option value="km">Khmer</option><option value="lo">Laosiano</option><option value="la">Latim</option><option value="lv">Letão</option><option value="lt">Lituano</option><option value="mk">Macedônico</option><option value="ml">Malaiala</option><option value="ms">Malaio</option><option value="mg">Malgaxe</option><option value="mt">Maltês</option><option value="mi">Maori</option><option value="mr">Marathi</option><option value="mn">Mongol</option><option value="ne">Nepalês</option><option value="no">Norueguês</option><option value="fa">Persa</option><option value="pl">Polonês</option><option value="pt">Português</option><option value="pa">Punjabi</option><option value="ro">Romeno</option><option value="ru">Russo</option><option value="sr">Sérvio</option><option value="st">Sesotho</option><option value="so">Somália</option><option value="sw">Suaíli</option><option value="su">Sudanês</option><option value="sv">Sueco</option><option value="tg">Tadjique</option><option value="tl">Tagalo</option><option value="th">Tailandês</option><option value="ta">Tâmil</option><option value="cs">Tcheco</option><option value="te">Telugo</option><option value="tr">Turco</option><option value="uk">Ucraniano</option><option value="ur">Urdu</option><option value="uz">Uzbeque</option><option value="vi">Vietnamita</option><option value="yi">Yiddish</option><option value="zu">Zulu</option></select></td> <td class="SL_td"> <div id="SL_switch_b" style="background: rgba(0, 0, 0, 0) repeat scroll 0% 0%;" title="Alternar Idiomas"> </div> </td> <td class="SL_td"><select><option value="af">Africâner</option><option value="sq">Albanês</option><option value="de">Alemão</option><option value="ar">Arabe</option><option value="hy">Armênio</option><option value="az">Azerbaijano</option><option value="eu">Basco</option><option value="bn">Bengali</option><option value="be">Bielo-russo</option><option value="my">Birmanês</option><option value="bs">Bósnio</option><option value="bg">Búlgaro</option><option value="ca">Catalão</option><option value="kk">Cazaque</option><option value="ceb">Cebuano</option><option value="ny">Chichewa</option><option value="zh-CN">Chinês (Simp)</option><option value="zh-TW">Chinês (Trad)</option><option value="si">Cingalês</option><option value="ko">Coreano</option><option value="ht">Crioulo haitiano</option><option value="hr">Croata</option><option value="da">Dinamarquês</option><option value="sk">Eslovaco</option><option value="sl">Esloveno</option><option value="es">Espanhol</option><option value="eo">Esperanto</option><option value="et">Estoniano</option><option value="fi">Finlandês</option><option value="fr">Francês</option><option value="gl">Galego</option><option value="cy">Galês</option><option value="ka">Georgiano</option><option value="el">Grego</option><option value="gu">Gujarati</option><option value="ha">Hauça</option><option value="iw">Hebraico</option><option value="hi">Hindi</option><option value="hmn">Hmong</option><option value="nl">Holandês</option><option value="hu">Húngaro</option><option value="ig">Igbo</option><option value="id">Indonésio</option><option selected value="en">Inglês</option><option value="yo">Ioruba</option><option value="ga">Irlandês</option><option value="is">Islandês</option><option value="it">Italiano</option><option value="ja">Japonês</option><option value="jw">Javanês</option><option value="kn">Kannada</option><option value="km">Khmer</option><option value="lo">Laosiano</option><option value="la">Latim</option><option value="lv">Letão</option><option value="lt">Lituano</option><option value="mk">Macedônico</option><option value="ml">Malaiala</option><option value="ms">Malaio</option><option value="mg">Malgaxe</option><option value="mt">Maltês</option><option value="mi">Maori</option><option value="mr">Marathi</option><option value="mn">Mongol</option><option value="ne">Nepalês</option><option value="no">Norueguês</option><option value="fa">Persa</option><option value="pl">Polonês</option><option value="pt">Português</option><option value="pa">Punjabi</option><option value="ro">Romeno</option><option value="ru">Russo</option><option value="sr">Sérvio</option><option value="st">Sesotho</option><option value="so">Somália</option><option value="sw">Suaíli</option><option value="su">Sudanês</option><option value="sv">Sueco</option><option value="tg">Tadjique</option><option value="tl">Tagalo</option><option value="th">Tailandês</option><option value="ta">Tâmil</option><option value="cs">Tcheco</option><option value="te">Telugo</option><option value="tr">Turco</option><option value="uk">Ucraniano</option><option value="ur">Urdu</option><option value="uz">Uzbeque</option><option value="vi">Vietnamita</option><option value="yi">Yiddish</option><option value="zu">Zulu</option></select></td> <td class="SL_td"> <div id="SL_TTS_voice" style="background: rgba(0, 0, 0, 0) repeat scroll 0% 0%;" title="Ouça"> </div> </td> <td class="SL_td"> <div class="SL_copy" id="SL_copy" style="background: rgba(0, 0, 0, 0) repeat scroll 0% 0%;" title="Copiar"> </div> </td> <td class="SL_td"> <div id="SL_bbl_font_patch"> </div> <div class="SL_bbl_font" id="SL_bbl_font" style="background: rgba(0, 0, 0, 0) repeat scroll 0% 0%;" title="Tamanho da fonte"> </div> </td> <td class="SL_td"> <div id="SL_bbl_help" style="background: rgba(0, 0, 0, 0) repeat scroll 0% 0%;" title="Ajuda"> </div> </td> <td class="SL_td"> <div class="SL_pin_off" id="SL_pin" style="background: rgba(0, 0, 0, 0) repeat scroll 0% 0%;" title="Fixar a janela de pop-up"> </div> </td> </tr> </tbody> </table> </div> </div> <div id="SL_shadow_translation_result" style=""> </div> <div class="SL_loading" id="SL_loading" style="background: rgba(0, 0, 0, 0) repeat scroll 0% 0%;"> </div> <div id="SL_player2"> </div> <div id="SL_alert100">A função de fala é limitada a 200 caracteres</div> <div id="SL_Balloon_options" style="background: rgb(255, 255, 255) repeat scroll 0% 0%;"> <div id="SL_arrow_down" style="background: rgba(0, 0, 0, 0) repeat scroll 0% 0%;"> </div> <table id="SL_tbl_opt" style="width: 100%;"> <tbody> <tr> <td><input></td> <td> <div id="SL_BBL_IMG" style="background: rgba(0, 0, 0, 0) repeat scroll 0% 0%;" title="Mostrar o botão do ImTranslator 3 segundos"> </div> </td> <td><a class="SL_options" title="Mostrar opções">Opções</a> : <a class="SL_options" title="Histórico de tradução">Histórico</a> : <a class="SL_options" title="Comentários">Comentários</a> : <a class="SL_options" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=GD9D8CPW8HFA2" title="Faça sua contribuição">Donate</a></td> <td><span id="SL_Balloon_Close" title="Encerrar">Encerrar</span></td> </tr> </tbody> </table> </div> </div> </div>