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