アプリ内でYouTube再生

アプリ内でYouTube再生

Androidアプリ内でYouTubeを再生するには
VideoViewを使う
もしくは
Android YouTube Player API
を使う

Android YouTube Player APIを使う場合
Google Map のAPIを使うときみたいに
Google APIs ConsoleでAPIを使えるようにしておく必要がある

そして、
Simple API Accessの keyをメモしておく

ここまでできたら
Android YouTube Player APIをダウンロードする

これをダウンロードしたら解凍して
libsから
YouTubeAndroidPlayerApi.jar

プロジェクトへ追加する

Eclipseを使っているなら
libs以下へ配置すれび自動認識される

ここまでできたら
レイアウトファイルへ
YouTubeを再生するためのViewを追加する

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

次に、Javaでの操作だけど
YouTubeを再生するためには
YouTubeBaseActivityを継承し
OnInitializedListenerを実装する必要がある

さらに
レイアウトファイルで追加したYouTubePlayerViewインスタンスへ
API key の設定も必要になる

まずは、継承から

extends YouTubeBaseActivity implements OnInitializedListener

を追加

次に、API キーなどを変数へ格納

private static final String DEVELOPER_KEY ="取得したAPIキー";
private static final int RECOVERY_DIALOG_REQUEST = 1;

次に、onCreate()の中で
YouTubePlayerViewへDeveloperキーを設定

YouTubePlayerView youtubeView = (YoutubePlayerView)findViewById(R.id.youtube);

youtubeView.Initialize(DEVELOPER_KEY, this);

次に、初期化失敗のときの処理

@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult errorReason){

//初期化失敗の処理
if(error.Reason.isUserRecoverableError()){
//エラー回避可能ならダイアログで表示
errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show();

}else{
//エラー回避不可能ならトーストで表示
String errorMessage = String.format(getString(R.string.error_player),
errorReason.toString());
Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT).show();
}
}

そして、初期化成功のときの処理

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

//YouTubeの動画Idを設定
if(!wasRestored){
player.cueVideo("再生したい動画のID");
}
}

また、YouTubeにアクセスするということで
AndroidManifest.xmlへ
インターネットにアクセスする権限を追加する

<uses-permission android:name="android.permission.INTERNET"/>

このように、YouTubePlayerViewを使うことで
動画再生のためのボタンやフルスクリーン機能なども自動で実装される

このあたりの制御には
YouTubePlayerViewクラスに実装されているメソッドを使う

APIや制御方法などは、Google Map APIに近い

あと、YouTubeの動画IDは
YouTubeのURLの中の
https://www.youtube.com/watch?v=
の後の部分になる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です