@@ -5,10 +5,21 @@ import VideoPlayer
55import androidx.compose.foundation.background
66import androidx.compose.foundation.layout.Box
77import androidx.compose.foundation.layout.Column
8+ import androidx.compose.foundation.layout.aspectRatio
89import androidx.compose.foundation.layout.fillMaxSize
910import androidx.compose.foundation.layout.fillMaxWidth
1011import androidx.compose.foundation.layout.height
12+ import androidx.compose.material3.Button
13+ import androidx.compose.material3.ExperimentalMaterial3Api
14+ import androidx.compose.material3.ModalBottomSheet
15+ import androidx.compose.material3.Text
16+ import androidx.compose.material3.rememberModalBottomSheetState
1117import androidx.compose.runtime.Composable
18+ import androidx.compose.runtime.getValue
19+ import androidx.compose.runtime.mutableStateOf
20+ import androidx.compose.runtime.remember
21+ import androidx.compose.runtime.rememberCoroutineScope
22+ import androidx.compose.runtime.setValue
1223import androidx.compose.ui.Alignment
1324import androidx.compose.ui.Modifier
1425import androidx.compose.ui.graphics.Color
@@ -17,41 +28,64 @@ import html_embeded_content.data.EmbedOptions
1728import html_embeded_content.domain.factory.HtmlContentViewerFactory
1829import html_embeded_content.domain.factory.HtmlEmbedFeature
1930import html_embeded_content.presentation.HtmlContentViewerView
31+ import kotlinx.coroutines.launch
2032
2133@Composable
2234fun App () {
35+ MainScree (modifier = Modifier .fillMaxSize())
36+ }
37+
38+ @OptIn(ExperimentalMaterial3Api ::class )
39+ @Composable
40+ fun MainScree (modifier : Modifier = Modifier ) {
41+ var isMedia by remember { mutableStateOf(false ) }
42+ val sheetState = rememberModalBottomSheetState()
43+ val coroutineScope = rememberCoroutineScope()
44+
45+ if (isMedia){
46+ ModalBottomSheet (
47+ onDismissRequest = {
48+ isMedia = ! isMedia
49+ coroutineScope.launch {
50+ sheetState.hide()
51+ }
52+ },
53+ sheetState = sheetState,
54+ ) {
55+ Box (
56+ modifier = Modifier
57+ .fillMaxWidth()
58+ .height(360 .dp)
59+ .background(Color .Black ),
60+ contentAlignment = Alignment .Center
61+ ) {
62+ VideoPlayer (
63+ modifier = Modifier .fillMaxWidth()
64+ .height(340 .dp)
65+ .aspectRatio(16 / 9f )
66+ ,
67+ url = " https://freetestdata.com/wp-content/uploads/2022/02/Free_Test_Data_1MB_MP4.mp4" ,
68+ showControls = true ,
69+ autoPlay = false
70+ )
71+ }
72+
73+ }
74+ }
75+
2376 Box (
2477 modifier = Modifier .fillMaxSize().background(Color .White ),
2578 contentAlignment = Alignment .Center
2679 ) {
27- Column {
28- // VideoPlayer(
29- // modifier = Modifier.fillMaxWidth().height(340.dp),
30- // url = "https://www.youtube.com/watch?v=AD2nEllUMJw",
31- // showControls = true,
32- // autoPlay = false
33- // )
34- //
35- // VideoPlayer(modifier = Modifier.fillMaxWidth().height(340.dp),
36- // url = "https://freetestdata.com/wp-content/uploads/2022/02/Free_Test_Data_1MB_MP4.mp4", // Automatically Detect the URL, Wether to Play YouTube Video or .mp4 e.g
37- // showControls = true,
38- // autoPlay = false
39- // )
40-
41- // MediaPlayer(
42- // modifier = Modifier.fillMaxWidth(),
43- // url = "https://commondatastorage.googleapis.com/codeskulptor-demos/DDR_assets/Kangaroo_MusiQue_-_The_Neverwritten_Role_Playing_Game.mp3",
44- // startTime = Color.Black,
45- // endTime = Color.Black,
46- // volumeIconColor = Color.Black,
47- // playIconColor = Color.Blue,
48- // sliderTrackColor = Color.LightGray,
49- // sliderIndicatorColor = Color.Blue,
50- // showControls = true,
51- // headers = mapOf("String" to ""),
52- // autoPlay = false
53- // )
54-
80+ Column (
81+ horizontalAlignment = Alignment .CenterHorizontally
82+ ) {
83+ Button (onClick = {
84+ isMedia = ! isMedia
85+ coroutineScope.launch { sheetState.show() }
86+ }) {
87+ Text (" Open Video Player" )
88+ }
5589
5690 val viewer = HtmlContentViewerFactory ().createHtmlContentViewer()
5791 val htmlEmbedFeature = HtmlEmbedFeature (viewer)
@@ -63,12 +97,11 @@ fun App() {
6397 onError = { error -> println (" Error loading page: $error " ) }
6498 )
6599 )
100+
66101 HtmlContentViewerView (
67102 viewer = viewer,
68- modifier = Modifier
69- .fillMaxSize()
103+ modifier = Modifier .fillMaxSize()
70104 )
71-
72105 }
73106 }
74107}
0 commit comments