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