LoginSignup
1
1

More than 1 year has passed since last update.

【Kotlin】YoutubeAPIで動画再生機能をAndroidアプリ内に実装する

Last updated at Posted at 2022-02-27

AndroidにおけるYoutube再生について調べたので、とりあえず再生できるようになるまでのメモ。

準備

  • Google Cloud Platformでプロジェクトを作成する
  • Youtube Data API v3を有効にし、APIキーを取得する
  • 公式のページからライブラリをダウンロードして、libsフォルダ内のYouTubeAndroidPlayerApi.jarを自分のプロジェクトにインポートする(AndroidStudio上でlibsにペースト後、右クリックでAdd As Libraryを選択)
  • Android Manifestでインターネット通信を許可する
<uses-permission android:name="android.permission.INTERNET" />
  • AndroidXで作るので、こちらを参考にYoutubePlayerSupportFragmentをAndroidX対応にさせる(大変助かりました)

レイアウト

とりあえず全画面再生

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activity.MainActivity">

    <fragment
        android:name="com.google.android.youtube.player.YouTubePlayerSupportFragmentX"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/player_fragment" />

</androidx.constraintlayout.widget.ConstraintLayout>

コード

MainActivity.kt
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.google.android.youtube.player.YouTubeInitializationResult
import com.google.android.youtube.player.YouTubePlayer
import com.google.android.youtube.player.YouTubePlayerSupportFragmentX

class MainActivity : AppCompatActivity(), YouTubePlayer.OnInitializedListener{
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val youtubePlayerFragment = supportFragmentManager.findFragmentById(R.id.player_fragment) as YouTubePlayerSupportFragmentX
        youtubePlayerFragment.initialize("APIキー",this)

    }


    /**
     * initialize成功時に呼ばれる
     */
    override fun onInitializationSuccess(
        provider: YouTubePlayer.Provider?,
        player: YouTubePlayer?,
        wasRestored: Boolean
    ) {
        player?.loadVideo("videoID")
    }

    /**
     * initialize失敗時に呼ばれる
     */
    override fun onInitializationFailure(
        provider: YouTubePlayer.Provider?,
        error: YouTubeInitializationResult?
    ) {
        //なにかする予定
    }
}

※videoIDはYoutubeの動画URLの末尾の方にある「v=」以降の英文字列になります。

これでとりあえず再生できました。

1
1
1

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
1
1