navigator.getUserMedia
io error: No such file or directory (os error 2) (/home/runner/work/yari/yari/mdn/translated-content/files/pt-br/web/api/media_capture_and_streams_api/index.md)
Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
O método Navigator.getUserMedia() atualmente esta deprecated (obsoleto), ele é responsável por pedir a permissão do usuário para usar até 1 dispositivo de entrada de vídeo (como câmera, ou tela compartilhada) e até 1 dispositivo de entrada de áudio (como o microfone) como fonte para o stream de mídia (pode ser representado por uma instância MediaStream
).
Se o usuário der permissão, a MediaStream (o track do video e/ou audio) , é entregue ao callback de sucesso, se a permissão é negada, pode ser que não haja dispositivo compatível ou alguma condição de erro aconteceu, retornando o callback de erro com uma instância do objeto MediaStreamError
, com a descrição do erro que aconteceu, se o usuário não fizer nenhuma escolha, nenhum callback é retornado.
Sintaxe
navigator.getUserMedia ( permissoes, callbackSucesso, callbackErro );
Exemplo
Este é um exemplo de uso da função getUserMedia() com prefixos específicos dos navegadores.
navigator.getMedia =
navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia;
navigator.getMedia(
// permissoes
{
video: true,
audio: true,
},
// callbackSucesso
function (localMediaStream) {
var video = document.querySelector("video");
video.src = window.URL.createObjectURL(localMediaStream);
video.onloadedmetadata = function (e) {
// Faz algo com o vídeo aqui.
};
},
// callbackErro
function (err) {
console.log("O seguinte erro ocorreu: " + err);
},
);
Parâmetros
parâmetro | Obrigatório/ Opcional | Descrição |
---|---|---|
permissoes | Obrigatório | Os tipos de mídia habilitados no objeto LocalMediaStream enviado para a callbackSucesso. |
callbackSucesso | Obrigatório | A função da aplicação a ser invocada para receber o objeto LocalMediaStream. |
callbackErro | Opcional | A função a ser invocada na aplicação se a chamada a getUserMedia falhar. |
permissoes
O parâmetro permissoes é um objeto MediaStreamConstraints com dois membros do tipo Boolean: video
e audio
. Estes membros descrevem os tipos de mídia habilitados no objeto LocalMediaStream. Pelo menos um destes membros deve ser especificado para que o argumento seja validado. Se um membro especificado não for suportado pelo navegador, a função getUserMedia invocará a callbackErro com o erro NOT_SUPPORTED_ERROR. Se o navegador não puder encontrar nenhuma fonte de mídia com o tipo especificado, a função getUserMedia invocará a callbackErro com o erro MANDATORY_UNSATISFIED_ERR.
Se o valor de um membro não estiver especificado no objeto, o valor padrão deste membro será falso. Veja como configurar o objeto permissoes para obter tanto áudio como vídeo:
{ video: true, audio: true }
callbackSucesso
A função getUserMedia invocará a função especificada em callbackSucesso com o objeto LocalMediaStream que contém a fonte de mídia. Você pode associar este objeto com o elemento apropriado e trabalhar com ele, como mostrado no exemplo a seguir:
function(localMediaStream) {
var video = document.querySelector('video');
video.src = window.URL.createObjectURL(localMediaStream);
video.onloadedmetadata = function(e) {
// Faz algo com o vídeo aqui.
};
}
callbackErro
A função getUserMedia invocará a função especificada em callbackErro com um argumento code
. Os códigos de erro são descritos abaixo:
Erro | Descrição |
---|---|
PERMISSION_DENIED | O usuário não permitiu acesso a um dispositivo de mídia necessário para essa operação. |
NOT_SUPPORTED_ERROR | Uma mídia especificada não é suportada pelo navegador. |
MANDATORY_UNSATISFIED_ERROR | Nenhuma fonte de mídia do tipo especificado foi encontrada. |
Especificações
Specification |
---|
Media Capture and Streams # dom-navigator-getusermedia |
Compatibilidade com navegadores
BCD tables only load in the browser
Veja também
- WebRTC - a página introdutória a API
- MediaStream API - a API para objetos de fonte de mídia
- Taking webcam photos - um tutorial sobre como usar a getUserMedia()