Thorium-android-app/app/src/main/java/net/schueller/peertube/feature_video/presentation/video_play/components/VideoItem.kt

118 lines
4.6 KiB
Kotlin

//package net.schueller.peertube.feature_video.presentation.video_play.components
//
//import android.app.Activity
//import android.net.Uri
//import android.view.ViewGroup
//import android.widget.FrameLayout
//import androidx.compose.foundation.layout.fillMaxSize
//import androidx.compose.material.Surface
//import androidx.compose.runtime.Composable
//import androidx.compose.runtime.DisposableEffect
//import androidx.compose.runtime.LaunchedEffect
//import androidx.compose.runtime.remember
//import androidx.compose.ui.Modifier
//import androidx.compose.ui.platform.LocalContext
//import androidx.compose.ui.viewinterop.AndroidView
//import com.google.android.exoplayer2.C
//import com.google.android.exoplayer2.MediaItem
//import com.google.android.exoplayer2.source.ProgressiveMediaSource
//import com.google.android.exoplayer2.source.dash.DashMediaSource
//import com.google.android.exoplayer2.source.hls.HlsMediaSource
//import com.google.android.exoplayer2.ui.PlayerView
//import com.google.android.exoplayer2.util.Util
//import net.schueller.peertube.common.VideoHelper
//import net.schueller.peertube.feature_video.domain.model.Video
//import net.schueller.peertube.feature_video.presentation.video_play.player.DataSourceHolder
//import net.schueller.peertube.feature_video.presentation.video_play.player.PlayerViewPool
//import net.schueller.peertube.feature_video.presentation.video_play.player.ExoPlayerHolder
//
//
//@Composable
//fun VideoItem(
// video: Video,
// modifier: Modifier
//) {
// Surface(
// modifier = modifier
// ) {
// val videoHelper = VideoHelper()
//
// val context = LocalContext.current
// val activity = context as Activity
// val exoPlayer = remember { ExoPlayerHolder.get(context) }
// var playerView: PlayerView? = null
//
// LaunchedEffect(videoHelper.pickPlaybackResolution(video)) {
// val videoUri = Uri.parse(videoHelper.pickPlaybackResolution(video))
// val dataSourceFactory = DataSourceHolder.getCacheFactory(context)
// val source = when (Util.inferContentType(videoUri)) {
// C.TYPE_DASH -> DashMediaSource.Factory(dataSourceFactory)
// .createMediaSource(MediaItem.fromUri(videoUri))
// C.TYPE_HLS -> HlsMediaSource.Factory(dataSourceFactory)
// .createMediaSource(MediaItem.fromUri(videoUri))
// else -> ProgressiveMediaSource.Factory(dataSourceFactory)
// .createMediaSource(MediaItem.fromUri(videoUri))
// }
// exoPlayer.setMediaSource(source)
// exoPlayer.prepare()
// }
//
//
// AndroidView(
//// modifier = Modifier.aspectRatio(video.width.toFloat() / video.height.toFloat()),
// factory = { context ->
// val frameLayout = FrameLayout(context)
//// frameLayout.setBackgroundColor(context.getColor(android.R.color.holo_blue_bright))
// frameLayout
// },
// update = { frameLayout ->
// frameLayout.removeAllViews()
//
// playerView = PlayerViewPool.get(frameLayout.context)
// PlayerView.switchTargetView(
// exoPlayer,
// PlayerViewPool.currentPlayerView,
// playerView
// )
// PlayerViewPool.currentPlayerView = playerView
// playerView!!.apply {
// player!!.playWhenReady = true
// }
//
// playerView?.apply {
// (parent as? ViewGroup)?.removeView(this)
// }
// frameLayout.addView(
// playerView,
// FrameLayout.LayoutParams.MATCH_PARENT,
// FrameLayout.LayoutParams.MATCH_PARENT
// )
////
//// playerView?.apply {
//// (parent as? ViewGroup)?.removeView(this)
//// PlayerViewPool.release(this)
//// }
//// playerView = null
//
// }
// )
//
// DisposableEffect(key1 = videoHelper.pickPlaybackResolution(video)) {
// onDispose {
// playerView?.apply {
// (parent as? ViewGroup)?.removeView(this)
// }
// exoPlayer.stop()
// playerView?.let {
// PlayerViewPool.release(it)
// }
// playerView = null
//
// }
// }
//
// }
//}
//
//