Как воспроизвести несколько звуков одновременно с MediaPlayer? - PullRequest
0 голосов
/ 20 июня 2019

Я создаю приложение деки для Android с Kotlin.Одна из функций, которую я хотел бы иметь, - возможность проигрывать несколько звуков одновременно (например, вы должны иметь возможность спамить, нажимая кнопку, каждый щелчок создает новый звук без остановки предыдущих).Я также хочу иметь кнопку «остановить все», которая останавливает все эти звуки сразу.

Код, который я придумал:

class SoundPlayer() {
    var mps = mutableListOf<MediaPlayer>()

    fun play(context: Context,soundResource:Int){
        mps.add(MediaPlayer.create(context,soundResource))
        mps.last().setOnCompletionListener {
            mps.remove(it)
        }
        mps.last().start()

    }

    fun stopAll(){
        for (mp in mps)mp.release()
    }

}

Однако, к сожалению, этот код иногда запускаетсяв ошибку (1 -19) , которая, насколько я понимаю, является ошибкой, возникающей, когда одновременно создается слишком много экземпляров MediaPlayer.Кто-нибудь знает, как сохранить вышеописанную функциональность, не встречая этой ошибки?Спасибо за помощь!

...