在何处加载SoundPool以进行应用程序范围的访问

时间:2019-02-09 12:13:37

标签: android kotlin soundpool

我想全局使用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)表达式可以访问加载的声音而不必自己加载声音?

0 个答案:

没有答案
相关问题