Páginas

terça-feira, 3 de dezembro de 2013

[Android] YouTube API

Olá Pessoal!

Hoje vou postar um simples tutorial mostrando como utilizar a API do YouTube em seu App. Sim, é isso mesmo, caso você ainda não saiba, o YouTube lançou sua API oficialmente em 10 de Maio de 2013.
Antes eu não havia precisado usar integração com o YouTube nos meus Aplicativos, porém pelo que percebi em algumas pesquisas que eu fiz, que essa integração era muito sofrível de ser feita. Porém agora, essa integração está muito simples de ser feita.

Então, sem mais comentários e vamos aos passos necessários:

1) Você precisa ter a versão 4.2.16 ou mais recente, do App oficial do YouTube. Pois é, o serviço utilizado pela API Android YouTube é distribuído junto com o aplicativo do YouTube real para Android. Apesar da Google não ter separado os dois, não se preocupe pois eles afirmaram que as versões Android 2.2 (Froyo) até as mais recentes receberam atualizações para o App do YouTube através da Play Store.

2) Em seguida, você precisa de uma chave da API. Ela é gratuita, porém você precisa de sua conta do Google para obtê-la.
Acesse esse link:
https://developers.google.com/youtube/android/player/register
E siga os passos corretamente, apesar de parecer confuso, leia com atenção, não tem erro.

OBS: você pode optar por não apresentar o SHA1 Certificado de impressão digital, você pode deixar o campo em branco por enquanto, e mesmo assim a API vai aceitar todas as suas chamadas. Só não se esqueça de restringir ao seu próprio pacote do App antes de liberar qualquer coisa na Play Store.

3) Depois de conseguir a chave da API, vamos abrir o Eclipse e iniciar um novo projeto. Não se esqueça que o projeto deve utilizar no mínimo a versão 2.2 do Android.

4) Antes de continuar com o projeto, você deve fazer download do principal, os arquivos da API :)
Acesse o link e faça o download:
https://developers.google.com/youtube/android/player/downloads/

Descompacte o arquivo zipado






Encontre o arquivo "YouTubeAndroidPlayerApi.jar"









Adicione ele à biblioteca do seu projeto


















5) Agora vamos adicionar ele no Build Path, clique com o botão direito em cima do .jar que acabamos de adicionar, e vá na opção "Build Path > Add to Build Path"









6) Agora precisamos abrir o nosso arquivo "AndroidManifest.xml" e adicionar a permissão de uso da Internet. O arquivo vai ficar assim:

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.testeyoutubeapi"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    
     <uses-permission android:name="android.permission.INTERNET"></uses-permission>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.testeyoutubeapi.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

7) Agora precisamos modificar o arquivo de layout "activity_main.xml" que fica em res/layout, e adicionar o Player do YouTube. O arquivo vai ficar assim:

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/titulo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Essa é a API do YouTube para Android!" />
    
    <com.google.android.youtube.player.YouTubePlayerView
              android:id="@+id/youtube_view"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_margin="12dip"
              android:layout_below="@+id/titulo"/>

</RelativeLayout>

8) Agora para acessarmos o componente através do nosso código, precisamos estender a classe "YouTubeBaseActivity". Para isso vamos modificar nosso arquivo "MainActivity.java". O arquivo vai ficar assim:

MainActivity.java

package com.example.testeyoutubeapi;

import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayer.Provider;
import com.google.android.youtube.player.YouTubePlayerView;

import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends YouTubeBaseActivity implements
YouTubePlayer.OnInitializedListener {

static private final String DEVELOPER_KEY = "AQUI VAI SUA CHAVE DA API";
static private final String VIDEO = "UhQKol7PFzA";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
youTubeView.initialize(DEVELOPER_KEY, this);
}

@Override
public void onInitializationFailure(Provider provider,
YouTubeInitializationResult error) {
Toast.makeText(this, "Ops! Algo deu errado =( " + error.toString(), Toast.LENGTH_LONG)
.show();
}

@Override
public void onInitializationSuccess(Provider provider,
YouTubePlayer player, boolean wasRestored) {
player.loadVideo(VIDEO);
}

}

OBS: Note que a String "static private final String VIDEO = "UhQKol7PFzA";" não contém a URL inteira do vídeo que está no YouTube, contém apenas o final depois do "http://www.youtube.com/watch?v="

http://www.youtube.com/watch?v=UhQKol7PFzA


9) Como você pode ver, o maior trabalho está na configuração, em obter a chave da API, do que na implementação do código.
Agora basta executar e ver o resultado:



DICA: se você seguiu os passos até o fim e executou o projeto com sucesso, percebeu que ao abrir a tela o player do YouTube já inicia a reprodução do vídeo automaticamente. Caso não queira que ele faça isso, basta mudar o método "onInitializationSuccess", mudando a linha:

player.loadVideo(VIDEO);

para

player.cueVideo(VIDEO);

Caso tenha outras dúvidas ou queira saber mais sobre os recursos disponíveis na API, acesse o Java Doc no link

Caso queira baixar o projeto inteiro, acesse o link:
http://www.mediafire.com/download/pnhr7rg2u2p8rkv/TesteYouTubeApi.zip

Bom, é isso pessoal!
Espero que tenha sido útil mais uma vez. Por favor, compartilhem a informação e comentem.
Obrigado e até a próxima.
Abraço!