Curso de HTML / Incorporar áudio, vídeo e conteúdo externo

O HTML pode reproduzir arquivos de mídia com audio e video, ou exibir outro documento dentro de uma página com iframe. A integração bem-sucedida depende dos caminhos reais dos arquivos e dos formatos suportados. Controles úteis, legendas ou transcrições, assim como a confiabilidade de conteúdos externos, também são importantes.

Reproduzir arquivos de áudio e vídeo

O exemplo supõe que sample.mp3, sample.mp4 e sample-poster.webp estão ao lado do arquivo HTML. Para executá-lo, forneça arquivos que você tem permissão para usar e ajuste os nomes, se necessário. Os arquivos de mídia também exigem nomes de arquivos, caminhos e dimensões corretos, seguindo os princípios de Imagens: img, Texto alternativo e Dimensões.

<audio controls>

  <source src="sample.mp3" type="audio/mpeg">

  Seu navegador não suporta a reprodução de áudio.

</audio>



<video controls width="640" height="360" poster="sample-poster.webp">

  <source src="sample.mp4" type="video/mp4">

  <track src="sample-pt.vtt" kind="captions" srclang="pt-BR"

         label="Legendas em português do Brasil" default>

  Seu navegador não suporta a reprodução de vídeo.

</video>

controls fornece os controles de reprodução do navegador, e poster é exibido antes da reprodução de um vídeo. Para a fala ou sons significativos, forneça legendas precisas. O sample-pt.vtt referenciado não é criado automaticamente. Sem este arquivo, as legendas não podem aparecer.

Um arquivo de legendas WebVTT é um texto UTF-8. Este exemplo mínimo mostra uma única indicação para os três primeiros segundos; as legendas reais devem cobrir a fala do vídeo e os sons importantes nos momentos apropriados.

WEBVTT

00:00:00.000 --> 00:00:03.000
Bem-vindo ao Pequeno Jardim.

Salve este bloco como sample-pt.vtt, em UTF-8. Não insira uma linha em branco entre os tempos e o texto da legenda: ela encerraria esse bloco de legenda. A referência do formato WebVTT na MDN descreve essa estrutura.

Quando informações importantes forem transmitidas por áudio, forneça também uma transcrição em texto. Permita que os usuários iniciem a reprodução por conta própria, em vez de acionar automaticamente o som de maneira inesperada. Se você oferecer vários formatos source, os arquivos subjacentes devem realmente usar esses formatos; renomear uma extensão não converte a mídia.

Incorporar conteúdo externo com iframe

Um iframe exibe outro documento dentro da página atual. A URL abaixo é um espaço reservado estrutural, e não uma integração de mídia funcional. Substitua-a por uma URL de integração oficial fornecida pelo provedor.

<iframe

  src="https://example.com/embed/example"

  title="Apresentação do conteúdo de exemplo"

  width="640" height="360"

  loading="lazy"></iframe>

O title descreve o propósito do quadro incorporado. Um provedor pode proibir a integração, mesmo que a URL normal de sua página funcione. O conteúdo externo pode afetar a privacidade, cookies e desempenho, portanto, use apenas o código de integração oficial de um provedor confiável quando ele agregar valor. Indique o título ou o contexto do elemento incorporado no texto ao redor para que o artigo permaneça compreensível mesmo se não carregar.

Ajuste a mídia e teste um iframe local

Uma largura HTML de 640 não se ajusta automaticamente a uma janela de visualização estreita. Coloque este CSS em um elemento style dentro do head ou em uma folha de estilo vinculada. O vídeo mantém sua proporção intrínseca; o exercício do iframe usa uma caixa de exibição 16:9. Ajuste essa proporção quando o conteúdo incorporado exigir outra proporção.

video, iframe {
  display: block;
  width: 100%;
  max-width: 640px;
}
video { height: auto; }
iframe {
  height: auto;
  aspect-ratio: 16 / 9;
}

Você pode testar os caminhos do quadro, o layout e a navegação alternativa sem arquivo de vídeo. Salve esses dois arquivos UTF-8 juntos. Este exercício não depende de nenhum serviço externo nem de dados pessoais.

embed.html

<!doctype html>
<html lang="pt-BR">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Instruções do exercício</title>
</head>
<body>
  <h1>Instruções do Pequeno Jardim</h1>
  <p>Este exemplo local é exibido em um iframe.</p>
</body>
</html>

frame.html

<!doctype html>
<html lang="pt-BR">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Exercício sobre iframes</title>
  <style>
video, iframe {
  display: block;
  width: 100%;
  max-width: 640px;
}
video { height: auto; }
iframe {
  height: auto;
  aspect-ratio: 16 / 9;
}
  </style>
</head>
<body>
  <h1>Ler as instruções</h1>
  <iframe src="embed.html" title="Instruções do Pequeno Jardim" width="640" height="360"></iframe>
  <p><a href="embed.html">Abrir as instruções em uma página separada</a></p>
</body>
</html>

Abra frame.html e verifique o título e o parágrafo incorporados, depois teste se o quadro se ajusta a uma janela de 390px. Siga também o link para a página separada. Se você usar posteriormente uma integração externa, verifique o URL oficial desse fornecedor e sua política de integração.

WebVTT é um formato de texto que associa intervalos de tempo com legendas. Se as legendas falharem a partir de um arquivo local, verifique primeiro a existência, a extensão, a codificação UTF-8 e os intervalos das legendas, depois compare servindo o HTML, o vídeo e o VTT a partir de um mesmo servidor de desenvolvimento HTTP, com a mesma origem. As restrições sobre URLs de arquivos e tipos de mídia do servidor podem afetar o carregamento. Renomear uma extensão não é uma conversão de mídia.

<p><a href="sample.mp4">Abrir o arquivo de vídeo de exemplo</a></p>
<p><a href="transcript.html">Ler a transcrição do vídeo</a></p>

Direcione as alternativas para arquivos e uma transcrição que você realmente preparou. O texto de reserva dentro do áudio/vídeo destina-se a navegadores que não suportam o elemento; não é uma mensagem de erro garantida para aparecer quando um navegador compatível não consegue carregar um arquivo. Mantenha as alternativas e transcrições necessárias disponíveis também fora do reprodutor.

Se a mídia não for reproduzida ou ajustada

  • Verifique se o arquivo existe no caminho especificado e se o servidor envia o tipo de mídia apropriado.
  • Verifique se o navegador suporta a codificação real do arquivo, não apenas sua extensão de nome de arquivo.
  • Use o CSS para limitar a largura em telas pequenas sem distorcer a proporção do vídeo.
  • Para conteúdo externo, verifique a política de incorporação e os termos do fornecedor.

Consulte a referência de vídeo MDN e a referência de iframe para os atributos específicos dos elementos. Aplique o escopo dos testes manuais em Bases de acessibilidade: títulos, links, imagens e teclado aos controles de reprodução, links alternativos e ao uso do teclado.