如何同时使用MediaPlayer播放多种声音?

时间:2019-06-20 20:56:29

标签: android audio kotlin android-mediaplayer

我正在使用Kotlin构建适用于Android的音板应用程序。我想拥有的功能之一是可以一次播放多个声音的选项(例如,您应该可以通过垃圾邮件单击一个按钮,每次单击都会创建一个新声音,而不会停止以前的声音)。我还希望有一个“全部停止”按钮,可立即停止所有这些声音。

我想到的代码是:

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实例时发生的错误。有谁知道如何保持上述功能而不遇到此错误?感谢您的帮助!

0 个答案:

没有答案