revisão de áudio e vídeo em JavaScript

Construtor Audio e métodos comuns

  • Definição: O construtor Audio, como outros construtores, é uma função especial chamada com a palavra-chave new. Ele retorna um HTMLAudioElement, que você pode usar para reproduzir áudio para o usuário ou anexar ao DOM para que o usuário controle por conta própria. Quando você chama o construtor, pode opcionalmente passar uma URL como o (único) argumento. Essa URL deve apontar para a fonte do arquivo de áudio que você deseja reproduzir. Ou, se precisar alterar a fonte dinamicamente, você pode atribuir a URL à propriedade src do elemento de áudio retornado.
  • Método play(): Este método é usado com os elementos audio ou video para iniciar a reprodução da mídia.
<audio id="audio" controls>
  <source src="https://www.w3schools.com/html/horse.mp3" type="audio/mpeg">
</audio>

<button id="playBtn">Play Audio</button>

<script>
  const audio = document.getElementById("audio");
  const playBtn = document.getElementById("playBtn");

  playBtn.addEventListener("click", () => {
    audio.play();
  });
</script>
  • Método pause(): Este método é usado com os elementos audio ou video para pausar a reprodução da mídia. Ele mantém a posição atual, então se play() for chamado, a reprodução começa dessa posição.
<audio id="myAudio" controls>
  <source src="https://www.w3schools.com/html/horse.mp3" type="audio/mpeg">
</audio>

<br>

<button id="pauseBtn">Pause Audio</button>

<script>
  document.addEventListener("DOMContentLoaded", () => {
    const audio = document.getElementById("myAudio");
    const pauseBtn = document.getElementById("pauseBtn");

    pauseBtn.addEventListener("click", () => {
      audio.pause();
    });
  });
</script>
  • Método addTextTrack(): Este método permite especificar uma faixa de texto para associar ao elemento de mídia — o que é especialmente útil para adicionar legendas a um vídeo.
  • Método fastSeek(): Este método permite mover a posição de reprodução para um tempo específico dentro da mídia.
O construtor Audio() tem propriedades assim como métodos. Essas propriedades incluem:
  • currentTime: para obter o tempo atual de reprodução de um áudio
  • loop: para fazer o áudio tocar continuamente reiniciando automaticamente quando chega ao fim
  • muted: para silenciar a saída de áudio de um elemento de mídia independentemente da configuração de volume

Diferentes formatos de áudio e vídeo

  • Tipo MIME: Um tipo MIME, que significa Multipurpose Internet Mail Extensions, é uma forma padronizada de indicar programaticamente um tipo de arquivo. O tipo MIME pode informar a uma aplicação, como seu navegador, como lidar com um arquivo específico. No caso de áudio e vídeo, o tipo MIME indica que é um formato multimídia que pode ser incorporado na página web.
  • Elemento source: É usado para especificar um tipo de arquivo e fonte — e pode incluir múltiplos tipos diferentes usando vários elementos source. Quando você faz isso, o navegador determina o melhor formato para usar no ambiente atual do usuário.
  • MP3: É um tipo de formato digital usado para armazenar música, áudio ou som. É uma versão comprimida de uma gravação sonora que torna o tamanho do arquivo menor, facilitando o armazenamento e compartilhamento. MP3 tem o suporte mais amplo entre navegadores e o tipo MIME audio/mpeg.
  • MP4: Um MP4 é um tipo de formato digital usado para armazenar vídeo e áudio. Ele serve como um container que contém tanto o vídeo (imagens) quanto o som (música ou fala) em um único arquivo. Um MP4 pode ter o tipo MIME audio/mp4 OU video/mp4, dependendo se é um arquivo de vídeo ou apenas áudio.
  • Outros formatos são WMV, associado ao app Windows Media Player, OGG, MKV, AVI e mais.

codecs

  • Definição: Um codec, abreviação de "encoder/decoder", é um algoritmo ou software que pode converter áudio e vídeo entre formatos analógicos e digitais. Codecs podem ser especificados como parte do tipo MIME. A sintaxe básica para definir um codec é adicionar um ponto e vírgula após o tipo de mídia, depois codecs= e o codec.

API HTMLMediaElement

  • Definição: A API HTMLMediaElement é usada para controlar o comportamento dos elementos de áudio e vídeo na sua página. Ela estende a interface base HTMLElement, então você tem acesso às propriedades e métodos básicos, assim como a eventos úteis como waiting, ended, canplay, canplaythrough e mais. Exemplos de métodos incluem play(), fastSeek(), pause() e canPlayType() para verificar se um navegador provavelmente consegue reproduzir um arquivo de áudio.

API Media Capture and Streams

  • Definição: A Media Capture and Streams API, ou a MediaStream API, é usada para capturar áudio e vídeo do seu dispositivo. Para usar a API, você precisa criar o objeto MediaStream. Você poderia fazer isso com o construtor, mas ele não estaria ligado ao hardware do usuário. Em vez disso, a propriedade mediaDevices do objeto global navigator tem um método getUserMedia() para você usar.
window.navigator.mediaDevices.getUserMedia({
  audio: true,
  video: {
    width: {
      min: 1280,
      ideal: 1920,
      max: 3840
    },
    height: {
      min: 720,
      ideal: 1080,
      max: 2160
    }
  }
});

API de captura de tela

  • Definição: A Screen Capture API é usada para gravar a tela do usuário. Esta API é acessada chamando o método getDisplayMedia() do objeto mediaDevices e consumindo o fluxo de mídia retornado.

API de gravação MediaStream

  • Definição: A MediaStream Recording API funciona em conjunto com as MediaStreams APIs, permitindo que você grave um MediaStream (ou até mesmo um HTMLMediaElement diretamente).

API de Media Source Extensions

  • tópico: A API Media Source Extensions é o que permite que você passe diretamente o feed da webcam de um usuário para um elemento de vídeo com a propriedade srcObject.

Web Audio API

  • Definição: A Web Audio API que alimenta tudo que é audível na web. Esta API inclui objetos importantes como um AudioBuffer (que representa um Buffer contendo especificamente dados de áudio) e o AudioContext, usado para representar um grafo de processamento de áudio.