Neste artigo será criado uma aplicação no Visual Studio 2013 utilizando a linguagem C# com .NET Framework 4.0, que tem por objetivo reproduzir vídeos do Youtube sem a necessidade de um navegador de Internet.
Para reproduzir o vídeo do Youtube será necessário apenas do componente Shockwave Flash Object e que o vídeo a ser reproduzido permita acesso externo do Youtube. Mas antes de começar desenvolver o projeto, é importante entender como tudo isto basicamente funciona.
Quando o usuário acessa o Youtube.com e abre um vídeo, o servidor devolve apenar alguns pacotes de informações para o navegador, que por sua vez utiliza de uma aplicação externa para poder interpretar e apresentar os pacotes recebidos, neste caso a aplicação é o Shockwave Flash. O Shockwave nada mais é do que um complemento que favorece a reprodução de conteúdo de multimídia, tais como: Jogos, Vídeos, Muitos entre outros.
Para saber mais sobre o Shockwave Flash acesse: http://www.techtudo.com.br/noticias/noticia/2014/08/o-que-e-shockwave-flash.html
Agora que já entendemos como nossa aplicação vai se comportar, crie um novo projeto no Visual Studio, utilizando a linguagem C#, Windows Form Application, escolha o .NET Framework 4.0 e atribua o nome de sua preferência.
Após a criar o projeto, será necessário adicionar o componente Shockwave Flash Object aos itens da Toolbox. Para adicionar o novo componente clica com o botão direito do mouse sobre qualquer parte da Toolbox, em seguida clique em Choose Items... (encontrar itens).
Na janela que abrirá, clique na aba COM Components, marque a opção Shockwave Flash Object e clique em OK.
Após adicionar o componente ele estará na Toolbox. Arraste um Button, Textbox e o novo componente Shockwave Flash Object para o formulário. Personalize o formulário a seu gosto, para o nosso exemplo ele ficou organizado conforme mostra a imagem abaixo.
Altere as propriedades dos componentes conforme mostra abaixo.
Componente |
Name |
Text |
Shockwave Flash Object |
sfoPlayer |
|
Textbox |
txtEndereco |
|
Button |
btnCarregar |
Carregar |
Com o formulário configurado vamos começar a criar nossos códigos, mas antes disso vamos fazer um pequeno teste, e nele você poderá perceber um problema que devemos tratar.
De um duplo clique no botão btnCarregar para abrir o método Click e insira o código abaixo, note que ele acompanha uma URL do youtube, mas perceba bem, está URL não tem o watch?v, isto porque o Player necessita apenas do caminho do vídeo e não da página correspondente ao vídeo.
Note o vídeo original: https://www.youtube.com/watch?v=Dqt20hTlTO8
Agora o vídeo adaptado: https://www.youtube.com/v/Dqt20hTlTO8
Abra os dois Links no seu navegador para entender melhor como o player necessita carregar. O último parâmetro autoplay=1 informa que o vídeo deve iniciar assim que o vídeo for aberto.
Código 01:
private void btnCarregar_Click(object sender, EventArgs e)
{
sfoPlayer.Movie = "https://www.youtube.com/v/Dqt20hTlTO8&;autoplay=1";
}
Rodando a aplicação o vídeo é carregado e já é iniciado no controle do Shockwave.
Basicamente só necessitamos passar a URL para a propriedade Movie do controle. A propriedade Movie é a responsável por carregar os meta-dados ao Player, porém como dito anteriormente, vídeos que não permitem reprodução fora do Youtube vão falhar.
Agora crie um método como mostra o código abaixo, leia atentamente os comentários para entender como ele foi construído e seu comportamento. Não há segredo algum, basicamente remover e inserimos string.
Código 02:
private string RetornarURL(string URL)
{
/*
Verificamos se exite a string watch?, caso exista irá retornar 1
*/
if (URL.IndexOf("watch?") > 0)
{
URL = URL.Replace("watch?", ""); //Trocamos 'watch?' por nada (vázio/string.empty)
URL = URL.Replace("=", "/"); //Trocamos '=' por '/', isto é uma regra do Youtube, estamos apenas seguindo
URL = URL + "&autoplay=1"; //Para que o vídeo inicie automaticamente, adicionamos '&autoplay=1'.
}
return URL;
}
Para finalizar volte ao método Click do btnCarregar e insira o código abaixo, veja que ele utiliza o método criado acima.
Código 03:
private void btnCarregar_Click(object sender, EventArgs e){
string URL = "";
URL = RetornarURL(txtEndereco.Text); //Passamos o valor do txtEndereco para o médodo.
sfoPlayer.Movie = URL; //Passamos para a propriedade o valor da nova URL.
}
Rode sua aplicação e insira a URL de um vídeo de sua preferência, para este teste foi utilizado: https://www.youtube.com/watch?v=C9slkeFXogU.
E assim finalizamos o nosso artigo, ao som de Jack Ü, caso houver dúvidas deixem nos comentários..
Até a próxima!