Je commence le video player

workShana
Shana CASCARRA 1 year ago
parent af3ff9dacc
commit 880ce7c38c

@ -61,6 +61,14 @@ dependencies {
implementation("androidx.activity:activity-compose:1.7.0") implementation("androidx.activity:activity-compose:1.7.0")
implementation("androidx.navigation:navigation-compose:2.4.0-alpha08") implementation("androidx.navigation:navigation-compose:2.4.0-alpha08")
/*// Jetpack Compose
implementation 'androidx.compose.ui:ui:1.0.5'
implementation 'androidx.compose.material:material:1.0.5'
implementation 'androidx.compose.ui:ui-tooling:1.0.5'
*/
// ExoPlayer
implementation("com.google.android.exoplayer:exoplayer:2.15.1")
implementation(platform("androidx.compose:compose-bom:2023.08.00")) implementation(platform("androidx.compose:compose-bom:2023.08.00"))
implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics") implementation("androidx.compose.ui:ui-graphics")

@ -0,0 +1,57 @@
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 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.viewinterop.AndroidView
@Composable
fun VideoPlayer(videoUri : Uri){
val context = LocalContext.current
val exoPlayer = remember {
SimpleExoPlayer.Builder(context).build().apply {
setMediaItem(MediaBrowser.MediaItem.fromUri(videoUri))
prepare()
}
}
val playbackState by exoPlayer.rememberPlaybackState()
val isPlaying = playbackState?.isPlaying ?: false
AndroidView(
factory = { context ->
PlayerView(context).apply {
player = exoPlayer
}
},
modifier = Modifier.fillMaxSize()
)
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…
Cancel
Save