Apr 6, 2013

Display YouTubeThumbnailView of YouTube Android Player API

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

Example:

YouTubeThumbnailView
YouTubeThumbnailView


package com.example.androidyoutubethumbnailview;

import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubeThumbnailLoader;
import com.google.android.youtube.player.YouTubeThumbnailView;

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

public class MainActivity extends Activity 
 implements YouTubeThumbnailView.OnInitializedListener{
 
 public static final String DEVELOPER_KEY = "replace your own API Key here";
 private static final String VIDEO_ID = "fhWaJi1Hsfo";

 private YouTubeThumbnailLoader youTubeThumbnailLoader;
 private YouTubeThumbnailView thumbnailView;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  thumbnailView = (YouTubeThumbnailView)findViewById(R.id.thumbnailview);
  thumbnailView.initialize(DEVELOPER_KEY, this);
 }

 @Override
 public void onInitializationFailure(YouTubeThumbnailView thumbnailView,
   YouTubeInitializationResult errorReason) {
  
  String errorMessage =
    String.format("onInitializationFailure (%1$s)", 
      errorReason.toString());
  Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show(); 
 }

 @Override
 public void onInitializationSuccess(YouTubeThumbnailView thumbnailView,
   YouTubeThumbnailLoader thumbnailLoader) {
  
  Toast.makeText(getApplicationContext(), 
         "onInitializationSuccess", Toast.LENGTH_SHORT).show();
  
  youTubeThumbnailLoader = thumbnailLoader;
     thumbnailLoader.setOnThumbnailLoadedListener(new ThumbnailListener());
     
     youTubeThumbnailLoader.setVideo(VIDEO_ID);
 }
 
   private final class ThumbnailListener implements
       YouTubeThumbnailLoader.OnThumbnailLoadedListener {

     @Override
     public void onThumbnailLoaded(YouTubeThumbnailView thumbnail, String videoId) {
       Toast.makeText(getApplicationContext(), 
         "onThumbnailLoaded", Toast.LENGTH_SHORT).show();
     }

     @Override
     public void onThumbnailError(YouTubeThumbnailView thumbnail,
         YouTubeThumbnailLoader.ErrorReason reason) {
      Toast.makeText(getApplicationContext(), 
        "onThumbnailError", Toast.LENGTH_SHORT).show();
     }  
   }

}


<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.YouTubeThumbnailView
        android:id="@+id/thumbnailview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>


Apr 5, 2013

Example to use YouTubePlayerFragment of YouTube Android Player API

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

Example to use YouTubePlayerFragment
Example to use YouTubePlayerFragment


To use YouTubePlayerFragment in your app, android:minSdkVersion have to be set "11" or higher.

Modify activity_main.xml to include <fragment> of "com.google.android.youtube.player.YouTubePlayerFragment" 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" />
    <fragment
      android:name="com.google.android.youtube.player.YouTubePlayerFragment"
      android:id="@+id/youtubeplayerfragment"
      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 the post "Preparation for development with YouTube Android Player API".
package com.example.androidyoutubeplayerfragment;

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.YouTubePlayerFragment;
import com.google.android.youtube.player.YouTubePlayerView;
import com.google.android.youtube.player.YouTubePlayer.Provider;

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;
 private static final String VIDEO_ID = "fhWaJi1Hsfo";
 
 YouTubePlayerFragment myYouTubePlayerFragment;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  myYouTubePlayerFragment = (YouTubePlayerFragment)getFragmentManager()
    .findFragmentById(R.id.youtubeplayerfragment);
  myYouTubePlayerFragment.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
 public void onInitializationSuccess(Provider provider, YouTubePlayer player,
   boolean wasRestored) {
  if (!wasRestored) {
        player.cueVideo(VIDEO_ID);      
  }
 }
 
 @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.youtubeplayerfragment); 
 }

}


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");  
    }  
   }

}


Preparation for development with YouTube Android Player API

  • The YouTube Android Player API is an experimental API version, which means it is still in development, though we do not expect major interface changes. Until the experimental label is removed, the Deprecation Policy for YouTube APIs won't apply to this version as discussed in the API Terms of Service.

  • Download and install YouTube Android Player API

    - After download and unzip, copy the file YouTubeAndroidPlayerApi.jar from the libs folder in your unzipped files to /libs/ folder under your project.

    - Add the jar in your build path: Right click your project -> Properties -> Select Java Build Path on left -> select Libraries tab -> click Add JARS... button - Browse to select the added YouTubeAndroidPlayerApi.jar.

  • Register your application and obtain API from Google APIs Console.

    Check HERE your detail instructions.

  • Add <uses-permission> of "android.permission.INTERNET" in project AndroidManifest.xml.

  • If you use YouTubePlayerFragment, android:minSdkVersion have to be set "11" or higher.


Examples:


YouTube Android Player API Overview


Related:

Infolinks In Text Ads