【目的】
AndroidでYouTubeAPIを使用してYouTubeの動画のプレイヤーの状態変更(PlayerStateChange)を取得します。
【準備】
1.「
Google APIsのYouTube Data API v3のAPIキーを取得する方法」の手順で、「YouTube Data API v3」のAPIキーを取得しておきます。
※APIキーの取得に指定するパッケージ名は「com.example.androidsample44_009」です。
【手順1】
1.「
Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの作成手順で、「AndroidSample44-009-YouTubeAPIPlayerStateChange」といプロジェクトを作成。
※プロジェクトの設定は以下の通り。
※他の項目は任意。
項目名 |
項目に設定する値 |
アプリケーション名(Application Name) |
com.example.androidsample44_009 |
プロジェクト名(Project Name) |
AndroidSample44-009-YouTubeAPIPlayerStateChange |
パッケージ名(Package Name) |
com.example.androidsample44_009 |
Build SDK |
API 8 |
Minimum Required SDK |
API 8 |
2.「
YouTube Android Player API 1.0.0をライブラリに設定する方法」の手順でライブラリを設定。
【手順2】
1.「AndroidManifest.xml」は以下の通り。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.androidsample44_009"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.androidsample44_009.MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。
【手順3】
1.「res/layout/activity_main.xml」は以下の通り。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.google.android.youtube.player.YouTubePlayerView
android:id="@+id/youtube_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClickButtonPlay"
android:text="開始" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClickButtonPause"
android:text="停止" />
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
2.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
3.「Ctrl+S」を押し、ファイルを保存。
【手順4】
1.「src/com/example/androidsample44_009/MainActivity.java」は以下の通り。
package com.example.androidsample44_009;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
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.ErrorReason;
import com.google.android.youtube.player.YouTubePlayer.PlayerStateChangeListener;
import com.google.android.youtube.player.YouTubePlayerView;
public class MainActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {
private static final String DEVELOPER_KEY = "YOUR_OWN_KEY";
private static final String VIDEO_ID = "TougVsqHIVg";
private static final String INIT_ERROR_MESSAGE = "初期化に失敗しました。 (%1$s)";
private static final int RECOVERY_DIALOG_REQUEST = 1;
private YouTubePlayer player;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initYouTubeView();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RECOVERY_DIALOG_REQUEST) {
initYouTubeView();
}
}
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult errorReason) {
if (errorReason.isUserRecoverableError()) {
errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show();
} else {
String errorMessage = String.format(INIT_ERROR_MESSAGE, errorReason.toString());
Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show();
}
}
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
this.player = player;
this.player.setPlayerStateChangeListener(new PlayerStateChangeListener() {
public void onVideoStarted() {
setText("onVideoStarted");
}
public void onVideoEnded() {
setText("onVideoEnded");
}
public void onLoading() {
setText("onLoading");
}
public void onLoaded(String arg0) {
setText("onLoaded");
}
public void onError(ErrorReason arg0) {
setText("onError");
}
public void onAdStarted() {
setText("onAdStarted");
}
private void setText(String event) {
TextView text = (TextView) findViewById(R.id.text);
text.setText(event + "\n" + text.getText());
}
});
if (!wasRestored) {
player.cueVideo(VIDEO_ID);
}
}
private void initYouTubeView() {
YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
youTubeView.initialize(DEVELOPER_KEY, this);
}
public void onClickButtonPause(View view) {
this.player.pause();
}
public void onClickButtonPlay(View view) {
this.player.play();
}
}
2.「YOUR_OWN_KEY」を【準備】で取得しておいた、APIキーに変更。
3.「Ctrl+Shift+F」を押し、コードをフォーマッティング。
4.「Ctrl+S」を押し、ファイルを保存。
【手順5】
1.「
Androidプロジェクトの作成・実行方法(バージョン別一覧)」のAndroidプロジェクトの実行手順で、実行。
【手順6】
1.以下の様に表示されれば成功です。
以上です。