我想全局使用SoundPool,以便每个片段都可以访问其播放方法。为此,我有一个像这样的课程:
class PingSoundPool(context: Context) {
val mAttributes = AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_GAME)
.build()
val mSoundPool = SoundPool.Builder()
.setMaxStreams(9)
.setAudioAttributes(mAttributes)
.build()
val abping = mSoundPool.load(context, R.raw.abping, 1)
val aping = mSoundPool.load(context, R.raw.aping, 1)
fun loadPings(note: Int) {
if(note == 1)
mSoundPool.play(cping, 1f, 1f, 1, -1, 1f)
if(note == 2)
mSoundPool.play(dbping, 1f, 1f, 1, -1, 1f)
}
}
现在的问题是,每次我只想播放一种声音时,所有声音都被加载。我可以在哪里放置用于加载声音的代码,以便if(note == Int)
表达式可以访问加载的声音而不必自己加载声音?