- Android Studio 4.0.1
- Kotlin 1.4.0
- YouTube Android Player API 1.2.2
YouTube Android Player APIを使って、AndroidアプリでYoutubeを再生させます。
Android Studioでプロジェクト作成
アプリの登録
Google APIsでAPIキーを作成し、Androidのプロジェクトと関連付けます。
Android Studioでプロジェクト作成
プロジェクトを作成し、パッケージ名を決めます。
アプリのフィンガープリント取得
SHA-1のフィンガープリント取得方法
- AndroidStudioで、Gradleタブの「app/Tasks/android/signingReport」をダブルクリック
- Runコンソールに出力される
Googleプロジェクト作成
既存のプロジェクトを利用してもいいかもしれませんが、作成します。
リソースの管理から、プロジェクト作成
APIキー作成
作成したプロジェクトで
「+認証情報を作成」 → 「APIキー」 → 「閉じる」
アプリと関連付け
作成されたAPIキーを選択
APIキーの名前をAPIキー1から、適当に変更
Android アプリに使用を限定、のメニューから
「項目を追加」パッケージ名とSHA-1のフィンガープリントを設定
ライブラリのダウンロードとセットアップ
ライブラリのダウンロード
Androidプロジェクトに登録
-
ダウンロードしたzipファイルからjarファイルをコピー
libs/YouTubeAndroidPlayerApi.jar
→ [Project Folder]/app/libs -
AndroidStudioで、Porject/app/libs/YouTubeAndroidPlayerApi.jarを
右クリック「 Add As Library...」→ appを選択
アプリ実装
パーミッション設定
<uses-permission android:name="android.permission.INTERNET" />
回転制御
<activity android:name=".MainActivity"
android:configChanges="orientation|screenSize|keyboardHidden">
レイアウトXML編集
- Designに切り替え、Containers/をレイアウトにドロップすると、Viewクラスの選択ダイアログが表示される
- YouTubePlayerView(com.google.android.youtube.player)を選択
- ViewにIDを付ける(今回はyoutubeView)
※YoutubePlayerViewにボタンなどが重なっていると、再生が途中で止まってしまいました。
Activity実装
YouTubeBaseActivityを継承
class MainActivity : YouTubeBaseActivity() {
val API_KEY = "[API_KEY]"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val playerView = findViewById<YouTubePlayerView>(R.id.youtubeView)
val listener = object: YouTubePlayer.OnInitializedListener {
override fun onInitializationSuccess(provider: YouTubePlayer.Provider?, player: YouTubePlayer?, wasRestored: Boolean) {
player?.loadVideo("[YoutubeのVideoID]")
}
override fun onInitializationFailure(provider: YouTubePlayer.Provider?, result: YouTubeInitializationResult?) {
}
}
playerView.initialize(API_KEY, listener)
}
}