Youtube再生ライブラリで「夜に駆ける」を再生するだけのAndroidアプリを作った

目次

  1. 背景
  2. 作ったもの
  3. 公式のライブラリはどうなのか?
  4. 使い方
    1. Dependencyの追加
    2. Viewの追加
    3. オブザーバーの追加
    4. VideoIdの設定
  5. まとめ

背景

こんにちは。 かりんとうマニア(@karintozuki)です。
AndroidでYoutubeの動画を埋め込みたい
android-youtube-player
というライブラリがあるので、使ってみました。

作ったもの

タイトルにあるようにアプリを開くと「夜に駆ける」が再生されます。
それだけですw

念のためですが、

著作権があるので、もちろんApp Storeでの公開はできません。

念のため。

公式のライブラリはどうなのか?

Youtubeには公式のAndroid用Player APIというものが用意されています。
https://developers.google.com/youtube/android/player

しかし、android-youtube-playerの作者曰く、公式ライブラリはバグがあり、
サポートもしっかりしていないため、プロダクションに使うにはちょっと頼りないとのことです。
また、公式で提供されるAPIはアプリの登録が必要なため
ちょっとめんどくさそうです。

こういった理由から、android-youtube-playerを使用してみることにしました。

使い方

GitHubにサンプルプロジェクトのソースをあげていますので、
こちらも参考にしてみてください。
https://github.com/PierfrancescoSoffritti/android-youtube-player

Dependencyの追加

build.gradleに以下を追加します。

build.gradle
1
2
3
dependencies {
implementation 'com.pierfrancescosoffritti.androidyoutubeplayer:core:10.0.5'
}

バージョンは都度最新版を確認して適宜変更してください。

Viewの追加

Viewを追加します。

acrivity_main.xml
1
2
3
4
5
6
7
8
<com.pierfrancescosoffritti.androidyoutubeplayer.core.player.views.YouTubePlayerView
android:id="@+id/youtube_player_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"

app:videoId="x8VYWazR5mE"
app:autoPlay="true"
app:showFullScreenButton="false" />

これだけでYoutubeが再生できるようになります。
便利ですね!

オブザーバーの追加

ViewだけでYoutubeが見られるようになるのですが、オブザーバーを追加すると、
Life cycleに対応して処理を自動でしてくれるようになります。

以下の二行を追加します。

MainActivity
1
2
val youTubePlayerView = findViewById<YouTubePlayerView>(R.id.youtube_player_view)
        lifecycle.addObserver(youTubePlayerView);

VideoIdの設定

先ほどの例だと、Viewに動画のIDをベタ書きしていましたが、
プログラム側で制御することも可能です。

コードは以下のようになります。

MainActivity
1
2
3
4
5
6
7
8
9
10
val youTubePlayerView = findViewById<YouTubePlayerView>(R.id.youtube_player_view)
        lifecycle.addObserver(youTubePlayerView);

        youTubePlayerView.addYouTubePlayerListener(object : AbstractYouTubePlayerListener() {
            override fun onReady(youTubePlayer: YouTubePlayer) {
                val videoId = "S0Q4gqBUs7c"
                youTubePlayer.loadVideo(videoId, 0f)
            }
        })

以下のように、
第一引数は動画のID、第二引数には再生開始位置を指定できます。

1
youTubePlayer.loadVideo(videoId, 0f)

まとめ

今回はめちゃくちゃ簡単にYoutubeを埋め込めるライブラリを紹介しました。
動画をアプリに組み込めると幅が広がりますね。

ただしYoutube上の動画を利用する際には
著作権にはお気をつけください!
基本的には自分がアップロードした動画を利用するのが吉かと思われます。

それでは今日はこの辺で。