Я хочу прервать оба звука, если они воспроизводятся при нажатии на любую из кнопок, чтобы не слышать два звука одновременно. Для этого я создал функцию stopSounds(), которая вызывается при нажатии любой кнопки.
Кроме того, я выпускаю оба звука при уничтожении активности. . Должен ли я выпускать их в другой части приложения, например, каждый раз, когда они заканчивают играть?
Это краткое изложение моего кода:
Код: Выделить всё
class MyClass : AppCompatActivity() {
private var successSound: MediaPlayer? = null
private var failSound: MediaPlayer? = null
override fun onDestroy() {
super.onDestroy()
this.successSound.release()
this.failSound.release()
}
override fun onCreate() {
super.onCreate()
...
val successBtn = findViewById(R.id.btn_success)
val failBtn = findViewById(R.id.btn_fail)
...
this.successSound = MediaPlayer.create(this, R.raw.success)
this.failSound = MediaPlayer.create(this, R.raw.fail)
...
successBtn.setOnClickListener {
this.stopSounds()
this.successSound!!.start()
}
failBtn.setOnClickListener {
this.stopSounds()
this.failSound!!.start()
}
}
private fun stopSounds() {
if (this.successSound?.isPlaying == true) {
this.successSound!!.stop()
this.successSound!!.prepare()
}
if (this.failSound?.isPlaying == true) {
this.failSound!!.stop()
this.failSound!!.prepare()
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/775 ... uce-sounds
Мобильная версия