Передать переменную MediaPlayer из класса в фрагмент?

Есть класс, который воспроизводит звук при нажатии на кнопку. Если звук воспроизводится, то при выходе из текущего фрагмента он должен останавливаться.

Я знаю, что я должен переопределить метод onPause() в самом фрагменте. Но как это реализовать не совсем понимаю в силу нехватки опыта. Подскажите как это можно реализовать? И куда вообще копать?

Код класса

class Music(var button: Button, val context: Context, val resources: Resources, val Id: Int, var buttonArray: MutableList<Button>, val mpArray: MutableList<MediaPlayer>) {

fun play() : MediaPlayer {
    if (buttonArray.size >= 2) {
        buttonArray.removeFirst()
    }

    if (mpArray.size >= 2) {
        mpArray.removeFirst()
    }

    mpArray.add(MediaPlayer.create(context, Id))
    buttonArray.add(button)

    if (mpArray.size == 1 && !mpArray[0].isPlaying) {
        mpArray[0].start()
        return mpArray[0]
    } else if (mpArray.size == 2 && buttonArray[0] == buttonArray[1]) {
        if (mpArray[0].isPlaying) {
            mpArray[0].pause()
            mpArray[0].reset()
            mpArray[0].release()
        } else if (!mpArray[1].isPlaying) {
            mpArray[1].start()
            return mpArray[1]
        }
    }

    if (mpArray.size == 2 && buttonArray[0] != buttonArray[1]) {
        if (mpArray[0].isPlaying) {
            mpArray[0].pause()
            mpArray[0].reset()
            mpArray[0].release()
            mpArray[1].start()
        } else if (!mpArray[0].isPlaying) {
            mpArray[1].start()
            return mpArray[1]
        }
    }
    return MediaPlayer.create(context, Id)
}

fun stop() {
    if (play().isPlaying) {
        play().stop()
        play().release()
    }
}

Фрагмент

override fun onPause() {
    super.onPause()
    Music().stop()  //тут необходимо указать свойства класса, которых нет в фрагменте
}

Ответы (1 шт):

Автор решения: ЮрийСПб
  1. Создайте метод pause в вашем классе.
  2. В нём останавливайте музыку.
  3. Во фрагменте переопределите onPause метод.
  4. В нём - вызовите метод pause из п.1
→ Ссылка