Вот описание приложения. В столбце две кнопки. Первая кнопка подготавливает и воспроизводит аудиофайл. Второй останавливает воспроизведение аудиофайла.
Вот код MainActivity
Код: Выделить всё
// Sound Effect Uri
val soundEffectUri = "android.resource://com.example.audiotest/raw/sound_effect"
// App Layout
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
// Button That Plays Audio
Button(onClick = { AudioClass(this).play() })
{ Text(text = "Start") }
// Button That Stops Audio
Button(onClick = { AudioClass(this).stop() })
{ Text(text = "Stop") }
Код: Выделить всё
// Class That Holds MediaPlay Logic
class AudioClass(context: Context) {
// Instance Of MediaPlayer
val mediaPlayer = MediaPlayer()
// MediaPlayer Attributes
init {
mediaPlayer.setDataSource(context, Uri.parse(soundEffectUri))
mediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM)
mediaPlayer.isLooping = true
}
// Function That Prepares And Starts Audio
fun play() {
mediaPlayer.prepare()
mediaPlayer.start()
}
// Function That Stops Audio
fun stop() {
mediaPlayer.stop()
}
}
Вот что говорит лог-кот всякий раз, когда я нажимаю кнопку, останавливающую звук.
Код: Выделить всё
2024-09-23 19:10:55.088 22661-22661 MediaPlayerNative com.example.audiotest E stop called in state 2, mPlayer(0xd25cb1e0)
2024-09-23 19:10:55.088 22661-22661 MediaPlayerNative com.example.audiotest E error (-38, 0)
2024-09-23 19:10:55.149 22661-22661 MediaPlayer com.example.audiotest E Error (-38,0)
Подробнее здесь: https://stackoverflow.com/questions/790 ... iod-studio