Desenvolvimento

2 fev, 2010

HTML5: tag video com alternativa em Flash

Publicidade

Com a tag <video> do HTML5 torna-se possível inserir vídeos em
páginas web de uma forma muito simples, semelhante à inserção de imagens
em documentos HTML, onde o próprio browser fornece as funções de
reprodução sem a necessidade de plugins como Flash ou Quicktime.

A marcação HTML para isso é muito simples, e você pode ver um exemplo
abaixo:

<video src="someclip.mp4" controls />

Safari (versão atual e posteriores), Google Chrome e Firefox 3.1b2 (e
versões posteriores) possuem suporte a HTML5. O Opera no atual momento
possui um experimento onde dá suporte superficial a tag
video. O Safari reproduz arquivos do tipo MPEG4 (e, pelo menos no Mac, é coisa
que o QuickTime pode reproduzir). O Firefox atualmente só suporta
arquivos Ogg Theora.

Essa falta de suporte aos codecs pode ser superada através da
inserção de dois formatos de arquivo na mesma tag <video>:

<video controls>
<source src="video.m4v" type="video/mp4" /> <!-- MPEG4 para Safari -->
<source src="video.ogg" type="video/ogg" /> <!-- Ogg Theora para Firefox -->
</video>

Já nos browsers antigos, que não suportam a tag <video>, temos
que usar uma alternativa em Flash. Uma alternativa muito simples é
utilizar o SWFObject.

Observem o HTML:

<div id="demo-video-flash">
<video id="demo-video" poster="snapshot.jpg" controls>
<source src="video.m4v" type="video/mp4" /> <!-- MPEG4 para Safari -->
<source src="video.ogg" type="video/ogg" /> <!-- Ogg Theora para Firefox -->
</video>
</div>

Nós colocamos a tag <video> dentro de uma div que é para
anexá-la ao SWFObject. Observem abaixo o JavaScript com o auxílio da
biblioteca jQuery:

<script type="text/javascript">
$(document).ready(function() {
var v = document.createElement("video"); // Para browsers que suportam a tag <video>
if ( !v.play ) { // Caso contrário, utilize Flash.
var params = {
allowfullscreen: "true",
allowscriptaccess: "always"
};
var flashvars = {
file: "video.f4v",
image: "snapshot.jpg"
};
swfobject.embedSWF("player.swf", "demo-video-flash", "480", "272", "9.0.0", "expressInstall.swf", flashvars, params);
}
});
</video></script>

A detecção de suporte do browser é feita através da criação de uma
tag <video>. Caso o elemento não possa ser criado, então entra em
ação o flash que usa o SWFObject para montar o player no HTML.

Vejam um exemplo
em funcionamento
. Caso seja de seu interesse, você pode baixar
aqui
os arquivos utilizados nesse tutorial para estudo.

A desvantagem para essa solução, já que nem todos os browsers possuem
suporte nativo e a utilização de codecs ainda não é padronizada, é que
você tem que fornecer 3 opções do mesmo arquivo (MPEG4, Ogg e FLV)

Até a próxima!

*

Esse tutorial foi escrito com base no original do site de Henrik Sjökvist. Todo o
material aqui utilizado compete ao autor original do post.