Um de meus projetos necessitou a criação de um player de vídeos e agora estou compartilhando a idéia, ai tu me diz: ok Andrews, um player é simples de se fazer, só arrastar um componente e configurar a url do vídeo FLV! porém, o desafio era fazer um player com vídeos vindos diretos do YouTube e de forma randômica, que por sua vez a url destes vídeos estariam cadastrados em um banco de dados.
Então mãos a obra e vamos fazer este player,
Construindo a tabela para abrigar as url’s. Usaremos o MySQL como base de dados para abrigar estas url’s.
/* CRIANDO A TABELA */
CREATE TABLE `videos` (
`vid_codigo` int(10) NOT NULL auto_increment,
`vid_url` varchar(300) default NULL,
PRIMARY KEY (`vid_codigo`)
)
/* INSERINDO URL'S DO YOUTUBE */
insert into
`videos`(`vid_codigo`, `vid_url`)
values
(1,'http://br.youtube.com/watch?v=DJZUrTXPIBE'),
(2,'http://br.youtube.com/watch?v=NfxtAcjYbX0'),
(3,'http://br.youtube.com/watch?v=TGBZfhLsljY');
Criada a tabela, partiremos agora para o php, onde criaremos uma consulta para buscar as url’s dos vídeos nesta tabela. Também criaremos a função que faz a conversão da url do vídeo do YouTube, para que tenhamos a url final/verdadeira do vídeo FLV. Esta conversão se faz necessária devido a url apresentada quando estamos vendo o vídeo no YouTube não ser a url final/verdadeira do vídeo FLV, então se colocarmos esta url o player que criaremos não conseguirá encontrar o vídeo, caracterizando assim uma url inválida.
Criando a função para conexão com o banco de dados. Após escrever a função, salve-a com o nome de conexao.php.
function conexao() {
$cnx = mysql_connect('nome-do-servidor', 'nome-do-usuario', 'senha');
mysql_select_db('nome-da-tabela', $cnx);
return $cnx;
}
Criaremos então a função para selecionar a url na tabela, e fazer a conversão para a url final/verdadeira do vídeo FLV. Após escrever a função, salve-a com o nome de video_url.php.
/* INCLUINDO O ARQUIVO DE CONEXAO*/
require_once('conexao.php');
/* VARIAVEL DE CONEXAO COM O DB */
$cnx = conexao();
/* CONSULTA TABELA VIDEOS */
$SQL_video = "SELECT vid_url FROM videos ORDER BY rand() LIMIT 1";
$q_video = mysql_query($SQL_video, $cnx) or die(mysql_error());
$row_video = mysql_fetch_array($q_video);
/* PASSANDO URL SELECIONADA PARA VARIAVEL */
$url = $row_video['vid_url'];
// ATIVADA (UPDATE EM 29-01-2009)
$data = implode("", file($url));
/* FUNCTION CRIADA DEVIDO A MEU SERVER BLOQUEAR A FUNCTION file() ACIMA,
* ENTAO curl FAZ O SERVICO DO file() E TRAZ A URL EXTERNA.
*
* EXPERIMENTE TESTAR EM SEU SERVER A LINHA ACIMA, SE FUNCIONAR
* PODE REMOVER O BLOCO DE CODIGO ONDE UTILIZA AS curl
*/
// DESATIVADA (UPDATE EM 29-01-2009)
/*$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
$data = curl_exec($ch);
curl_close($ch);*/
if (preg_match_all("/&t=[^&]*/", $data, $matches)) {
$t = $matches[0][0];
$t = preg_split("/=/", $t);
$t = $t[1];
$v = $url;
// DESATIVADA (UPDATE EM 29-01-2009)
//$v = preg_split("/?v=/", $v);
$v = explode("?v=", $v);
$v = $v[1];
echo "&Path=http://www.youtube.com/get_video.php?video_id=".$v . "&t=".$t . "&.flv";
} else {
echo "null";
}
mysql_free_result($q_video);
Ja temos a função do php que faz a ponte para trazer as url’s verdadeiras pronta. Agora partiremos para o flash, onde faremos o player para tocar o vídeo.
Crie um novo arquivo no flash, podendo deixá-lo com os tamanhos padrões 550 x 400 pixels.
Agora, renomei a Layer 1 para “player”, arraste um componente “FLVPlayback” para o palco e para o nome de instância digite “my_vid”.

Agora vamos criar as action que serão responsáveis por fazer a ligação com o arquivo php.
Crie uma nova Layer com o nome de “Action”, clique no Frame 1 e precissione a tecla F9.

Agora iremos escrever o código actionscript a seguir para que nosso player funcione.
// INFORMANDO AO FLASH QUE A COMUNICACAO (ARQUIVO) ESTA EM OUTRO DOMINIO
System.security.allowDomain("*");
var myvar:LoadVars = new LoadVars();
// CARREGANDO O ARQUIVO PHP
myvar.load("video_url.php");
myvar.onLoad = function() {
// PASSANDO A URL VERDADEIRA DO YOUTUBE PARA O PLAYER
my_vid.contentPath = myvar.Path + "&t=" + myvar.t + "&.flv";
};
Pronto! agora salve e compile seu arquivo flash, e pode testá-lo em seu servidor.
Veja aqui o player em funcionamento. Clique no botão de refresh para ver os vídeos de forma randômica.
Abraço. Espero que tenham aproveitado.
Comentários recentes