3
4

More than 3 years have passed since last update.

Android: YouTube Android Player API

Last updated at Posted at 2020-09-24
  • 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を選択

アプリ実装

パーミッション設定

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

回転制御

AndroidManifest.xml
<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を継承

MainActivity
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)
    }
}
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4