@@ -6,20 +6,31 @@ import android.database.Cursor
6
6
import android.net.Uri
7
7
import android.provider.MediaStore
8
8
import android.util.Log
9
+ import androidx.compose.foundation.Image
9
10
import androidx.compose.foundation.background
10
11
import androidx.compose.foundation.layout.Box
11
12
import androidx.compose.foundation.layout.Column
12
13
import androidx.compose.foundation.layout.PaddingValues
14
+ import androidx.compose.foundation.layout.aspectRatio
13
15
import androidx.compose.foundation.layout.fillMaxSize
14
16
import androidx.compose.foundation.layout.fillMaxWidth
17
+ import androidx.compose.foundation.layout.padding
15
18
import androidx.compose.material3.Text
16
19
import androidx.compose.runtime.Composable
20
+ import androidx.compose.runtime.remember
17
21
import androidx.compose.ui.Alignment
18
22
import androidx.compose.ui.Modifier
19
23
import androidx.compose.ui.platform.LocalContext
24
+ import androidx.compose.ui.semantics.Role.Companion.Image
20
25
import androidx.compose.ui.text.intl.Locale
21
26
import androidx.compose.ui.text.style.TextAlign
22
27
import androidx.compose.ui.tooling.preview.Preview
28
+ import androidx.compose.ui.unit.dp
29
+ import coil.ImageLoader
30
+ import coil.compose.rememberAsyncImagePainter
31
+ import coil.compose.rememberImagePainter
32
+ import coil.decode.VideoFrameDecoder
33
+ import coil.size.Scale
23
34
import com.record.designsystem.component.button.RecordyButton
24
35
import com.record.designsystem.component.navbar.TopNavigationBar
25
36
import com.record.designsystem.theme.Background
@@ -38,6 +49,7 @@ fun SelectedVideoRoute(
38
49
fun SelectedVideoScreen (
39
50
navigateDefinedContent : () -> Unit ,
40
51
) { Log .d(" images" ," ${getAllVideos(10 , null , LocalContext .current)} " )
52
+ val a = getAllVideos(10 , null , LocalContext .current)
41
53
Box (
42
54
modifier = Modifier
43
55
.fillMaxSize()
@@ -56,6 +68,7 @@ fun SelectedVideoScreen(
56
68
modifier = Modifier .fillMaxWidth(),
57
69
textAlign = TextAlign .Center ,
58
70
)
71
+ VideoThumbnail (video = a[0 ])
59
72
}
60
73
RecordyButton (
61
74
modifier = Modifier .align(Alignment .BottomCenter ),
@@ -66,6 +79,43 @@ fun SelectedVideoScreen(
66
79
}
67
80
68
81
}
82
+
83
+
84
+ @Composable
85
+ fun VideoThumbnail (video : GalleryVideo ) {
86
+ val context = LocalContext .current
87
+ val imageLoader = ImageLoader .Builder (context)
88
+ .components {
89
+ add(VideoFrameDecoder .Factory ())
90
+ }.crossfade(true )
91
+ .build()
92
+
93
+ val painter = rememberAsyncImagePainter(
94
+ model = video.filepath,
95
+ imageLoader = imageLoader,)
96
+
97
+ Box (modifier = Modifier
98
+ .padding(8 .dp)
99
+ .fillMaxWidth()) {
100
+ // val painter = rememberImagePainter(
101
+ // data = video.uri,
102
+ // imageLoader = imageLoader,
103
+ // builder = {
104
+ // crossfade(true)
105
+ // scale(Scale.FILL)
106
+ // }
107
+ // )
108
+
109
+ Image (
110
+ painter = painter,
111
+ contentDescription = " Video Thumbnail" ,
112
+ modifier = Modifier
113
+ .fillMaxWidth()
114
+ .aspectRatio(16 / 9f )
115
+ )
116
+
117
+ }
118
+ }
69
119
@Preview
70
120
@Composable
71
121
fun SelectedVideoScreenPreview () {
0 commit comments