package
com.example.newcanaryproject
import
android.media.AudioManager
import
android.media.MediaPlayer
import
android.os.Bundle
import
android.widget.Toast
import
androidx.activity.ComponentActivity
import
androidx.activity.compose.setContent
import
androidx.compose.foundation.layout.*
import
androidx.compose.material.*
import
androidx.compose.runtime.*
import
androidx.compose.ui.Alignment
import
androidx.compose.ui.Modifier
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.platform.LocalContext
import
androidx.compose.ui.text.font.FontWeight
import
androidx.compose.ui.text.style.TextAlign
import
androidx.compose.ui.unit.*
import
com.example.newcanaryproject.ui.theme.*
class
MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContent {
NewCanaryProjectTheme {
Surface(
modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background
) {
Scaffold(
topBar = {
TopAppBar(backgroundColor = greenColor,
title = {
Text(
text =
"Custom Toast in Android"
,
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
color = Color.White
)
})
}) {
customToastUI()
}
}
}
}
}
}
@Composable
fun customToastUI() {
val ctx = LocalContext.current
val mediaPlayer = MediaPlayer()
Column(
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight()
.fillMaxSize()
.padding(
6
.dp),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(
modifier = Modifier.padding(
6
.dp),
text =
"Play Audio from URL"
,
fontWeight = FontWeight.Bold,
color = greenColor,
fontSize =
20
.sp
)
Spacer(modifier = Modifier.height(
20
.dp))
Button(
modifier = Modifier
.width(
300
.dp)
.padding(
7
.dp),
onClick = {
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC)
try
{
mediaPlayer.setDataSource(audioUrl)
mediaPlayer.prepare()
mediaPlayer.start()
}
catch
(e: Exception) {
e.printStackTrace()
}
Toast.makeText(ctx,
"Audio started playing.."
, Toast.LENGTH_SHORT).show()
}) {
Text(text =
"Play Audio"
)
}
Spacer(modifier = Modifier.height(
20
.dp))
Button(
modifier = Modifier
.width(
300
.dp)
.padding(
7
.dp),
onClick = {
if
(mediaPlayer.isPlaying) {
mediaPlayer.stop()
mediaPlayer.reset()
mediaPlayer.release()
Toast.makeText(ctx,
"Audio has been paused.."
, Toast.LENGTH_SHORT).show()
}
else
{
Toast.makeText(ctx,
"Audio not played.."
, Toast.LENGTH_SHORT).show()
}
}) {
Text(text =
"Pause Audio"
)
}
}
}