From 880ce7c38c851fdef7ea2f0f68964bbcb7f3eb63 Mon Sep 17 00:00:00 2001 From: Shana CASCARRA Date: Thu, 28 Mar 2024 11:51:39 +0100 Subject: [PATCH] Je commence le video player --- Android/VeraxApplication/app/build.gradle.kts | 8 +++ .../ui/article/VideoPlayer.kt | 57 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/article/VideoPlayer.kt diff --git a/Android/VeraxApplication/app/build.gradle.kts b/Android/VeraxApplication/app/build.gradle.kts index f7d95bb..9df79db 100644 --- a/Android/VeraxApplication/app/build.gradle.kts +++ b/Android/VeraxApplication/app/build.gradle.kts @@ -61,6 +61,14 @@ dependencies { implementation("androidx.activity:activity-compose:1.7.0") 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("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-graphics") diff --git a/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/article/VideoPlayer.kt b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/article/VideoPlayer.kt new file mode 100644 index 0000000..03d3d73 --- /dev/null +++ b/Android/VeraxApplication/app/src/main/java/com/example/veraxapplication/ui/article/VideoPlayer.kt @@ -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) + )*/ + } +} \ No newline at end of file