navigator.getUserMedia
Deprecated
Avoid using this feature in new projects. This feature may be a candidate for removal from web standards or browsers. >
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
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()