parent
656c9cb4ae
commit
d7e40b049f
@ -1,59 +1,44 @@
|
||||
package com.example.veraxapplication.ui.article
|
||||
|
||||
import android.graphics.drawable.Icon
|
||||
import android.media.browse.MediaBrowser
|
||||
import android.net.Uri // pas sur de l'import
|
||||
import android.view.ViewGroup
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.platform.LocalLifecycleOwner
|
||||
import androidx.compose.ui.viewinterop.AndroidView
|
||||
import com.google.android.exoplayer2.SimpleExoPlayer
|
||||
import com.google.android.exoplayer2.ExoPlayer
|
||||
import com.google.android.exoplayer2.MediaItem
|
||||
import com.google.android.exoplayer2.ui.PlayerView
|
||||
|
||||
@Composable
|
||||
fun VideoPlayer(videoUri : Uri){
|
||||
fun VideoPlayer(videoUrl : String){
|
||||
val context = LocalContext.current
|
||||
val exoPlayer = remember {
|
||||
SimpleExoPlayer.Builder(context).build().apply {
|
||||
setMediaItem(MediaBrowser.MediaItem.fromUri(videoUri))
|
||||
prepare()
|
||||
}
|
||||
val lifecycleOwner = LocalLifecycleOwner.current
|
||||
|
||||
val player = ExoPlayer.Builder(context).build()
|
||||
|
||||
val playerView = PlayerView(context).apply {
|
||||
layoutParams = ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.MATCH_PARENT
|
||||
)
|
||||
}
|
||||
val playbackState by exoPlayer.rememberPlaybackState()
|
||||
val isPlaying = playbackState?.isPlaying ?: false
|
||||
|
||||
val mediaItem = MediaItem.Builder()
|
||||
.setUri(videoUrl)
|
||||
.build()
|
||||
|
||||
player.setMediaItem(mediaItem)
|
||||
player.prepare()
|
||||
player.play()
|
||||
|
||||
AndroidView(
|
||||
factory = { context ->
|
||||
PlayerView(context).apply {
|
||||
player = exoPlayer
|
||||
}
|
||||
},
|
||||
modifier = Modifier.fillMaxSize()
|
||||
factory = { context -> playerView },
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
update = { view ->
|
||||
view.player = player
|
||||
}
|
||||
)
|
||||
|
||||
IconButton(
|
||||
onClick = {
|
||||
if (isPlaying) {
|
||||
exoPlayer.pause()
|
||||
} else {
|
||||
exoPlayer.play()
|
||||
}
|
||||
},
|
||||
modifier = Modifier
|
||||
.padding(16.dp)
|
||||
) {
|
||||
/*Icon(
|
||||
imageVector = if (isPlaying) Icons.Filled.Pause else Icons.Filled.PlayArrow,
|
||||
contentDescription = if (isPlaying) "Pause" else "Play",
|
||||
tint = Color.White,
|
||||
modifier = Modifier.size(48.dp)
|
||||
)*/
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in new issue