[Android] 023. 動画再生 YouTube(android-youtube-player)

YouTubeの動画を再生する場合Exo PlayerにYouTubeのリンクを設定しても再生されません
.m3u8のリンクが必要らしいですがYouTubeの仕様変更のためか取得できませんでした

YouTube DeveloperにYouTube Android Player APIがあったのですがサポート終了となり、現在IFrame版で実装しろとのことです
https://developers.google.com/youtube/android/player?hl=ja

自分でIFrame版で実装するのはちょっと面倒なのでGoogleのエンジニアが作ったIFrame版のwrapperであるandroid-youtube-playerを使用して実装してみます
https://pierfrancescosoffritti.github.io/android-youtube-player/

とりあえずandroid-youtube-playerの説明にある最もシンプルな構成で実装

com.pierfrancescosoffritti.androidyoutubeplayer:coreをimplementationしてください

@Composable
fun VideoPlayerView(modifier: Modifier = Modifier) {
    val context = LocalContext.current
    val lifecycleOwner = LocalLifecycleOwner.current
    val youTubePlayerView = remember { YouTubePlayerView(context) }
    val videoId = "S0Q4gqBUs7c"

    DisposableEffect(lifecycleOwner) {
        lifecycleOwner.lifecycle.addObserver(youTubePlayerView)

        onDispose {
            lifecycleOwner.lifecycle.removeObserver(youTubePlayerView)
        }
    }

    AndroidView(
        modifier = modifier,
        factory = {
            youTubePlayerView.addYouTubePlayerListener(
                object : AbstractYouTubePlayerListener() {
                    override fun onReady(youTubePlayer: YouTubePlayer) {
                        super.onReady(youTubePlayer)
                        youTubePlayer.loadVideo(videoId, 0f)
                    }
                }
            )
            youTubePlayerView
        }
    )
}

Android Studio Giraffe 2022.3.1 Patch 1 built on August 17, 2023