(Kotlin) К сожалению Ответ Jong не работал для меня, у меня было несколько ошибок, включая: MediaPlayer finalized without being released
и задержку в остановке и запуске звука. Поэтому я опубликую способ, которым я это сделал, на всякий случай, если у кого-то другая проблема. Моя реализация BackgroundSound
по-прежнему использует AsyncTask и MediaPlayer , однако это не вложенный класс.
class BackgroundSound : AsyncTask() {
override fun doInBackground(vararg params: Context): Void? {
val player = MediaPlayer.create(params[0], R.raw.msc_background)
player.isLooping = true
player.start()
while (!isCancelled) {
}
player.stop()
player.release()
return null
}
}
Вы можете использовать этот класс в своей Activity так:
private var backgroundSound: BackgroundSound? = null
override fun onResume() {
super.onResume()
backgroundSound = BackgroundSound()
backgroundSound!!.execute(this)
}
override fun onPause() {
backgroundSound?.cancel(true)
super.onPause()
}