À medida que o streaming se torna nossa principal fonte de entretenimento e os fornecedores lutam para criar o melhor formato de vídeo, será cada vez mais importante que detectemos o suporte a vídeo do dispositivo e do navegador antes de publicar vídeos em nossos sites. Pensamos menos em áudio, mas o mesmo princípio se aplica: detectar se um determinado formato de áudio é compatível ou não antes de usá-lo. Então, como detectamos se um determinado tipo de áudio é compatível?


Podemos detectar o suporte ao formato de áudio com HTMLAudioElement.prototype.canPlayType, a mesma estratégia usada com vídeo:



// Create an audio element so we can use the canPlayType method
const audio = document.createElement('audio');

// Does the device support mp3?
audio.canPlayType('audio/mpeg'); // "probably"


Há três resultados possíveis do canPlayType:

  • "probably" : O tipo de mídia parece ser reproduzível
  • "maybe": Não é possível saber se o tipo de mídia é reproduzível sem reproduzi-la
  • "": O tipo de mídia não pode ser reproduzido

Podemos criar uma função muito parecida com a minha supportsVideoType para facilitar a detecção de áudio:



function supportsAudioType(type) {
  let audio;

  // Allow user to create shortcuts, i.e. just "mp3"
  let formats = {
    mp3: 'audio/mpeg',
    mp4: 'audio/mp4',
    aif: 'audio/x-aiff'
  };

  if(!audio) {
    audio = document.createElement('audio')
  }

  return audio.canPlayType(formats[type] || type);
}

// Usage
if(supportsVideoType('mp3') === "probably") {
  // Set the video to mp3
}
else {
  // Set the video to wav or other format
}


Vale a pena dedicar algum tempo para detectar formatos de áudio e vídeo de ponta, o que lhe permite fornecer mídia mais clara com melhor compactação para melhorar o tempo de carregamento. Tenha em mente essas funções JavaScript para seu site de mídia grande ou pequeno!

  • Animação CSS vs. JS: O que é mais rápido?

    Como é possível que a animação baseada em JavaScript sempre tenha sido secretamente tão rápida – ou mais rápida – do que as transições CSS? E, como é possível que a Adobe e o Google lancem consistentemente sites móveis ricos em mídia que rivalizam com o desempenho de aplicativos nativos?

  • Bem-vindo ao meu novo escritório

    Meu primeiro desenvolvimento profissional na Web foi em uma pequena gráfica, onde eu ficava sentado em um cubículo sem janelas o dia todo. Sofri com esse ambiente fechado por quase cinco anos antes de conseguir encontrar um emprego remoto em que eu trabalhasse em casa. O primeiro…

  • Layout TabContainer do Dijit&#8217:  Conteúdo fácil com guias
  • Atributo spellcheck

    Recentemente, muitos atributos úteis foram fornecidos aos desenvolvedores da Web: download, espaço reservado, autofoco, entre outros. Um atributo mais antigo e útil é o atributo de verificação ortográfica, que permite aos desenvolvedores controlar a capacidade de um elemento de ser verificado ortograficamente ou sujeito a verificações gramaticais. Bastante simples, certo?