Começaremos nossa turnê pelas APIs de acesso aos dispositivos mais óbvios deste capítulo: a câmera e o microfone. A possibilidade de capturar áudio...
Começaremos nossa turnê pelas APIs de acesso aos dispositivos mais óbvios deste capítulo: a câmera e o microfone. A possibilidade de capturar áudio e vídeo na web, por muito tempo, permaneceu apenas como mais um objeto de desejo para os desenvolvedores. Devido a uma necessidade cada vez mais crescente, isso tornou-se possível através do antigo Macromedia Flash, que provia essas capacidades. Com a chegada do HTML5, finalmente tornou-se possível ter acesso esses tipos de mídia, considerados tão triviais hoje em dia. API de mídias do usuário A API para acessar a câmera é a mesma para acessar o microfone, tornando sua utilização realmente muito simples — trata-se do método getUserMedia(), do objeto global navigator. Por questões de privacidade, quando ométodo getUserMedia() for invocado, o navegador irá pedir permissão ao usuário para acessar sua câmera ou microfone — dependendo do que for requisitado. O método navigator.getUserMedia() possui 3 parâmetros: 1) Opções: um objeto que contém as opções de mídia que se deseja capturar. Cada opção é uma chave do objeto. Existem duas opções possíveis: video e audio, que podem ser atribuídas com um valor booleano. 2) Callback de sucesso: função que será executada caso o usuário libere o acesso ao dispositivo requisitado. É aqui que faremos algo com a mídia fornecida pela câmera e/ou microfone. Essa função tem apenas 1 parâmetro, que representa a stream de mídia fornecida. 3) Callback de falha: função que será executada caso o usuário não libere o acesso ao dispositivo requisitado ou se a mídia requisitada não for suportada. Essa função tem apenas 1 parâmetro, cujo argumento é um objeto que representa o erro, que pode ser dos tipos: • PermissionDeniedError: o usuário não permitiu o acesso ao dispositivo. • NotSupportedError: algumamídia especificada nas opções não é suportada. • MandatoryUnsatisfiedError: nenhuma fonte dentre as mídias especificadas encontrada. Alguns exemplos variando as opções de áudio e vídeo: // requisita acesso ao microfone apenas (áudio) navigator.getUserMedia({audio: true}, liberado, recusado); // requisita acesso à câmera apenas (vídeo mudo) navigator.getUserMedia({video: true}, liberado, recusado); // requisita acesso à câmera e microfone (vídeo com áudio) navigator.getUserMedia({video: true, audio: true}, liberado, recusado); Se o usuário liberar o acesso, então a função liberado será disparada.
A API para acessar a câmera é a mesma para acessar o microfone. O método navigator.getUserMedia() possui 3 parâmetros. O navegador irá pedir permissão ao usuário para acessar sua câmera ou microfone. O método getUserMedia() não possui callback de falha.
Compartilhar