Я хочу использовать 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)
могли получить доступ к загруженным звукам, не загружая их сами?