Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.

WebRTC API

WebRTC (Web Real-Time Communications) é uma tecnologia que permite aplicativos e sites da Web a capturarem e opcionalmente transmitirem mídia de áudio e/ou vídeo, assim como trocar informação arbitrária entre navegadores sem a necessidade de um intermediador. O conjunto de padrões que abrangem WebRTC possibilita o compartilhamento de informação e a realização de teleconferência peer-to-peer, dispensando a instalação deplug-ins ou quaisquer softwares de terceiros.

WebRTC consiste em diversas APIs e protocolos interrelacionados que trabalham juntos. A documentação que você encontrará aqui o ajudará a entender os fundamentos de WebRTC, como configurar e usar, tanto informação, quanto conexões de mídia e mais.

Conceitos e uso

WebRTC serve à diversas propostas; junto com aMedia Capture and Streams API, eles fornecem poder multimídia para a Web, incluindo suporte para áudio e vídeo conferência, troca de arquivos, compartilhamento de tela, gerenciamento de identidade e interface com sistemas telefônicos legados, incluindo suporte para envio de sinaisDTMF (touch-tone dialing). As conexões entre pares podem ser feitas sem a necessidade de drivers ou plug-ins especiais e, muitas vezes, sem servidores intermediários.

As conexões entre dois pares são representadas pela interfaceRTCPeerConnection. Uma vez que uma conexão foi estabelecida e aberta usandoRTCPeerConnection,streams de mídia (MediaStreams) e/ou canais de dados (RTCDataChannels) podem ser adicionados à conexão.

Dados de mídia podem consistir em qualquer número detracks(faixas) de dados de mídia;tracks, que são representados por objetos baseados na interfaceMediaStreamTrack , que podem conter um número dentre tipos de dados de mídia, incluíndo áudio, vídeo e texto (como legendas ou até mesmo nomes de capítulos). A maioria das transmissões consiste de ao menos uma faixa de áudio e comumente também uma faixa de vídeo, e podem ser usadas para enviar e receber ambas as mídias ao vivo ou dados salvos de mídia (como um filme transmitido).

Você também pode usar a conexão entre doispeers para trocar dados arbitrários binários usando a interfaceRTCDataChannel. Isto pode ser usado para informação deback-channel (canal de volta), troca demetadata, pacotes destatus de games, transferência de arquivos, ou até mesmo como um canal primário para transferir dados.

Interoperabilidade

O WebRTC é geralmente bem suportado em navegadores modernos, mas algumas incompatibilidades permanecem. A bibliotecaadapter.js é um calço para isolar aplicativos dessas incompatibilidades.

Referência WebRTC

WebRTC provê interfaces que trabalham em conjunto para realizar uma variedade de tarefas, nós dividimos as interfaces na listagem abaixo por categoria. Por favor, atente-se a sidebar para uma listagem em ordem alfabética.

Configuração e gerenciamento e conexão

Essas interfaces, dicionários e tipos são usados para configurar, abrir e gerenciar conexões WebRTC. Estão inclusas as interfaces que representam conexões de mídia de mesmo nível, canais de dados e interfaces usadas ao trocar informações sobre as capacidades de cada par para selecionar a melhor configuração possível para uma conexão de mídia bidirecional.

Interfaces

RTCPeerConnection

Representa uma conexão WebRTC entre o computador local e um ponto remoto. Ele é usado para lidar com o streaming eficiente de dados entre os dois pares.

RTCDataChannel

Representa um canal de dados bidirecional entre dois pares de uma conexão.

RTCDataChannelEvent

Representa eventos que ocorrem ao anexar umRTCDataChannel a umRTCPeerConnection. O único evento enviado com esta interface édatachannel.

RTCSessionDescription

Representa os parâmetros de uma sessão. CadaRTCSessionDescription consiste em uma descriçãotype indicando qual parte do processo de negociação de oferta/resposta ela descreve e do descritorSDP da sessão.

RTCStatsReport

Fornece estatísticas detalhadas de informações para uma conexão ou para umatrack individual na conexão; o relatório pode ser obtido chamandoRTCPeerConnection.getStats(). Detalhes sobre o uso de estatísticas WebRTC podem ser encontrados emWebRTC Statistics API.

RTCIceCandidate

Representa um servidorInteractive Connectivity Establishment (Estabelecimento de Conectividade Interativa) candidato (ICE) para estabelecer umRTCPeerConnection.

RTCIceTransport

Representa informações sobre um transporteICE.

RTCPeerConnectionIceEvent

Representa eventos que ocorrem em relação aos candidatos ICE com o destino, geralmente umRTCPeerConnection. Apenas um evento é deste tipo:icecandidate.

RTCRtpSender

Gerencia a codificação e a transmissão de dados para umMediaStreamTrack em umRTCPeerConnection.

RTCRtpReceiver

Gerencia a recepção e decodificação de dados para umMediaStreamTrack em umRTCPeerConnection.

RTCTrackEvent

A interface usada para representar um eventotrack, que indica que um objetoRTCRtpReceiver foi adicionado aoRTCPeerConnection, indicando que um novoMediaStreamTrack de entrada foi criado e adicionado aoRTCPeerConnection.

RTCSctpTransport

Fornece informações que descrevem um transporte deStream Control Transmission Protocol ouSCTP (Protocolo de Transmissão de Controle de Fluxo) e também fornece uma maneira de acessar a segurança daDatagram Transport Layer Security ouDTLS (Camada de Transporte de Datagrama Subjacente) através do qual os pacotes SCTP para todos os canais de dados de umaRTCPeerConnection são enviados e recebidos.

Dicionários

RTCIceServer

Define como se conectar a um único servidorICE (como um servidorSTUN ouTURN).

RTCRtpContributingSource

Contém informações sobre uma determinadafonte de contribuição (CSRC), incluindo a hora mais recente em que um pacote para o qual a fonte contribuiu foi reproduzido.

Eventos

bufferedamountlow

A quantidade de dados atualmente armazenados em buffer pelo canal de dados — conforme indicado por sua propriedadebufferedAmount — diminuiu para ficar igual ou inferior ao tamanho mínimo de dados em buffer do canal, conforme especificado porbufferedAmountLowThreshold.

close

O canal de dados concluiu o processo de fechamento e agora está no estado 'fechado'. Seu transporte de dados subjacente está completamente fechado neste ponto. Você pode ser notificadoantes do fechamento, observando o eventoclosing.

closing

ORTCDataChannel fez a transição para o estadoclosing, indicando que será fechado em breve. Você pode detectar a conclusão do processo de fechamento observando o eventoclose.

connectionstatechange

O estado da conexão foi alterado, pode ser acessada emconnectionState.

datachannel

Um novoRTCDataChannel está disponível após o peer remoto abrir um novo canal de dados. O tipo deste evento éRTCDataChannelEvent.

error

UmRTCErrorEvent indicando que ocorreu um erro no canal de dados.

error

UmRTCErrorEvent indicando que ocorreu um erro noRTCDtlsTransport. Este erro serádtls-failure oufingerprint-failure.

gatheringstatechange

O estado de coleta doRTCIceTransport mudou.

icecandidate

UmRTCPeerConnectionIceEvent que é enviado sempre que o dispositivo local identifica um novo candidato ICE que precisa ser adicionado ao par local chamandosetLocalDescription().

icecandidateerror

UmRTCPeerConnectionIceErrorEvent indicando que ocorreu um erro durante a coleta de candidatos ICE.

iceconnectionstatechange

Enviado para umRTCPeerConnection quando o estado de sua conexão ICE - encontrado na propriedadeiceconnectionstate - muda.

icegatheringstatechange

Enviado para umRTCPeerConnection quando seu estado de coleta de ICE - encontrado na propriedadeicegatheringstate - muda.

message

Uma mensagem foi recebida no canal de dados. O evento é do tipoMessageEvent.

negotiationneeded

Informa aoRTCPeerConnection que ele precisa realizar negociação de sessão chamandocreateOffer() seguido porsetLocalDescription().

open

O transporte de dados subjacente para oRTCDataChannel foi aberto ou reaberto com sucesso.

selectedcandidatepairchange

O par atualmente selecionado de candidatos ICE foi alterado para oRTCIceTransport no qual o evento é disparado.

track

O eventotrack, do tipoRTCTrackevent é enviado para umRTCPeerConnection quando uma nova trilha é adicionada à conexão após a negociação bem-sucedida da mídia transmissão.

signalingstatechange

Enviado para a conexão de mesmo nível quando seusignalingstate foi alterado. Isso acontece como resultado de uma chamada parasetLocalDescription() ousetRemoteDescription().

statechange

O estado doRTCDtlsTransport mudou.

statechange

O estado doRTCIceTransport mudou.

statechange

O estado doRTCSctpTransport mudou.

Tipos

RTCSctpTransport.state

Indica o estado de uma instânciaRTCSctpTransport.

Identidade e segurança

A API WebRTC inclui várias interfaces para gerenciar segurança e identidade.

RTCIdentityProvider

Permite que um agente de usuário possa solicitar que uma declaração de identidade seja gerada ou validada.

RTCIdentityAssertion

Representa a identidade de um ponto remoto da conexão atual. Se nenhum par ainda foi definido e verificado, esta interface retornanull. Uma vez definido, não pode ser alterado.

RTCIdentityProviderRegistrar

Registra um provedor de identidade (idP).

RTCCertificate

Representa um certificado que umRTCPeerConnection usa para autenticar.

Telefonia

Essas interfaces e eventos estão relacionadas à interatividade com redes telefônicas públicas comutadas (PTSNs) Elas são primariamente usadas para enviar sons de discagem por tom - ou pacotes que representam esses tons - pela rede para um par remoto.

Interfaces

RTCDTMFSender

Gerencia a codificação e a transmissão da sinalização de multifrequência de tom duplo (DTMF) para umRTCPeerConnection.

RTCDTMFToneChangeEvent

Usado pelo eventotonechange para indicar que um tom DTMF começou ou terminou. Este evento não propaga "bolhas" (exceto onde indicado de outra forma) e não é cancelável (exceto onde indicado de outra forma).

Eventos

tonechange

Um novo tomDTMF começou a tocar na conexão, ou o último tom notoneBuffer doRTCDTMFSender foi enviado e o buffer agora está vazio. O tipo do evento éRTCDTMFToneChangeEvent.

Guias

Introdução aos protocolos WebRTC

Este artigo apresenta os protocolos sobre os quais a API WebRTC é construída.

Conectividade WebRTC

Um guia de como as conexões WebRTC funcionam e como os vários protocolos e interfaces podem ser usados ​​juntos para criar aplicativos de comunicação poderosos.

Vida útil de uma sessão WebRTC

WebRTC permite criar comunicaçãopeer-to-peer de dados arbitrários, áudio ou vídeo — ou qualquer combinação deles — em um aplicativo de navegador. Neste artigo, veremos o tempo de vida de uma sessão WebRTC, desde o estabelecimento da conexão até o fechamento da conexão quando ela não for mais necessária.

Estabelecendo uma conexão: O padrão de negociação perfeito

Negociação perfeita é um padrão de design recomendado para o seu processo de sinalização, que fornece transparência na negociação enquanto permite que ambos os lados sejam oofferer (ofertante) ou oanswerer (respondente), sem necessidade de muito código para diferenciar os dois.

Sinalização e chamada de vídeo bidirecional

Um tutorial e exemplo que transforma um sistema de chat baseado em WebSocket criado para um exemplo anterior e adiciona suporte para abertura de chamadas de vídeo entre os participantes. A conexão WebSocket do servidor de bate-papo é usada para sinalização WebRTC.

Codecs usados ​​pelo WebRTC

Um guia para os codecs que o WebRTC exige que os navegadores suportem, bem como os opcionais suportados por vários navegadores populares. Está incluído um guia para ajudá-lo a escolher os melhores codecs para suas necessidades.

Usando canais de dados WebRTC

Este guia aborda como você pode usar uma conexão de mesmo nível e umRTCDataChannel associado para trocar dados arbitrários entre dois pares.

Usando DTMF com WebRTC

O suporte do WebRTC para interagir com gateways que se conectam a sistemas telefônicos antigos inclui suporte para enviar tons DTMF usando a interfaceRTCDTMFSender. Este guia mostra como fazer isso.

Tutoriais

Melhorando a compatibilidade usando o adaptador WebRTC.js

A organização WebRTCfornece no GitHub o adaptador WebRTC para solucionar problemas de compatibilidade em implementações WebRTC de diferentes navegadores. O adaptador é um shim JavaScript que permite que seu código seja escrito de acordo com a especificação para que "simplesmente funcione" em todos os navegadores com suporte a WebRTC.

Uma simples amostra de RTCDataChannel

A interfaceRTCDataChannel é um recurso que permite abrir um canal entre dois pares através do qual você pode enviar e receber dados arbitrários. A API é intencionalmente semelhante àAPI WebSocket, para que o mesmo modelo de programação possa ser usado para cada uma.

Construindo um telefone conectado à Internet com Peer.js

Este tutorial é um guia passo a passo sobre como construir um telefone usando Peer.js

Especificações

Specification
WebRTC: Real-Time Communication in Browsers
Media Capture and Streams
Media Capture from DOM Elements

Protocolos adequados para WebRTC

Protocolos de suporte relacionados

Veja também

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp