Apr 4, 2013

Implement Youtube Player using experimental YouTube Android Player API

Before start coding using YouTube Android Player API, read the post to prepare your development tools.

Youtube Player using experimental YouTube Android Player API
Youtube Player using experimental YouTube Android Player API


Modify activity_main.xml to include <com.google.android.youtube.player.YouTubePlayerView> in your layout.
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
    <com.google.android.youtube.player.YouTubePlayerView
        android:id="@+id/youtube_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>


Modify MainActivity.java, to extend YouTubeBaseActivity and implements YouTubePlayer.OnInitializedListener. Replace your the String DEVELOPER_KEY with your own API Key obtain in last post.

package com.example.androidyoutube;

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.YouTubePlayerView;

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

public class MainActivity extends YouTubeBaseActivity 
 implements YouTubePlayer.OnInitializedListener{
 
 public static final String DEVELOPER_KEY = "replace your own API Key here";
 private static final int RECOVERY_DIALOG_REQUEST = 1;

 @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(YouTubePlayer.Provider provider,
       YouTubeInitializationResult errorReason) {
     if (errorReason.isUserRecoverableError()) {
       errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show();
     } else {
       String errorMessage = String.format(
         "There was an error initializing the YouTubePlayer (%1$s)", 
         errorReason.toString());
       Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show();
     }
   }

   @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     if (requestCode == RECOVERY_DIALOG_REQUEST) {
       // Retry initialization if user performed a recovery action
       getYouTubePlayerProvider().initialize(DEVELOPER_KEY, this);
     }
   }

   protected YouTubePlayer.Provider getYouTubePlayerProvider() {
      return (YouTubePlayerView) findViewById(R.id.youtube_view);    
   }

   @Override
   public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player,
       boolean wasRestored) {
    
    if (!wasRestored) {
     player.cueVideo("fhWaJi1Hsfo");  
    }  
   }

}


No comments:

Post a Comment

Infolinks In Text Ads