sábado, 26 de janeiro de 2013

YouTube API para Android

Olá povo,

No dia 22/01/2013 a Google anunciou uma API para adicionar vídeos do YouTube nas aplicações Android. Os requisitos mínimos para utilização da API é que o dispositivo rode Android 2.2 ou superior e ter a aplicação do Youtube versão 4.2.16 ou mais recente instalada (por isso, não consegui rodar no emulador). Outro detalhe importante é que os vídeos poderão ser executados tanto em Activities diretamente ou em Fragments.
E nesse primeiro post de 2013 vou mostrar como dar os primeiros passos.

Gerando a chave de acesso
A primeira coisa que devemos fazer é registrar nossa aplicação no site Google APIs Console. Para termos acesso aos mais diversos serviços do Google, precisamos criar um projeto (se você já não tiver um). Para tal, clique em Create new Project. Agora acesse a opção API access depois clique no botão Create new Android key (se você não tiver uma), no popup que for exibido clique em Create. Será gerada uma chave no padrão SHA-1 similar a essa que usaremos no nosso código: AIzbSyCyoMobvh72ZrSv4xQddOLzDOlaLqCcILU

Baixando a API
Uma vez que temos a chave de acesso, baixe a API clicando aqui. Descompacte o arquivo zip e adicione o arquivo libs/YouTubeAndroidPlayerApi.jar à pasta libs do seu projeto Android. Ainda não criou o projeto? Tá esperando o quê? :)

Hello World Youtube!
Sem muitas delongas, adicione a permissão de Internet no AndroidManifest.xml e deixe sua Activity como abaixo:

import android.os.Bundle;

import com.google.android.youtube.player.*;
import com.google.android.youtube.player.YouTubePlayer.*;

public class MainActivity 
  extends YouTubeBaseActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    YouTubePlayerView youTubeView = 
      new YouTubePlayerView(this);

    setContentView(youTubeView);
    youTubeView.initialize(
      "AIzbSyCyoMobvh72ZrSv4xQddOLzDOlaLqCcILU", 
      new OnInitializedListener(){

      @Override
      public void onInitializationFailure(
        Provider provider,
        YouTubeInitializationResult result) {
      }

      @Override
      public void onInitializationSuccess(
        Provider provider,
        YouTubePlayer player, 
        boolean wasRestored) {
          if (!wasRestored){
            player.cueVideo("9bZkp7q19f0");
          }
      }
    }); 
  }
}
Nossa classe herda de YouTubeBaseActivity e no método onCreate instanciamos uma YouTubePlayerView que é quem exibirá o vídeo. Com esse objeto chamamos o método initialize passando a chave de acesso que geramos anteriormente além de uma instância da interface OnInitilizedListener. Essa interface tem dois métodos: um para quando a inicialização foi feita com sucesso; e outra para quando houve algum problema.
No método onInitializationSuccess usamos o objeto YouTubePlayer para inicializar o vídeo usando o método cueVideo passando o id do vídeo do YouTube. O parâmetro wasRestored é pra saber se o vídeo está sendo restaurado do ponto onde parou.



O exemplo que fizemos aqui usamos a YouTubeView, mas você pode fazer o mesmo utilizando a classe YouTubeFragment (e YouTubeSupportFragment para dispositivos anteriores ao Android 3).

Mais informações sobre a YouTube API você pode ter aqui.

Qualquer dúvida, deixem seus comentários.

4br4ç05,
nglauber