Android Kotlin SoundPool()のdeprecated対応


SoundPool() はAPI LEVEL 21 から非推奨。

'constructor SoundPool(Int, Int, Int)' is deprecated. Deprecated in Java

21以降はSoundPool.Builder()でインスタンスを構築する。

//Lollipop未満
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP){
    mSoundPool = SoundPool(1, AudioManager.STREAM_ALARM, 0)
}else{
    //AudioAttributesでstreamTypeを指定
    val audioAttributes = AudioAttributes.Builder()
        .setUsage(AudioAttributes.USAGE_ALARM).build()
    mSoundPool = SoundPool.Builder()
        .setMaxStreams(1).setAudioAttributes(audioAttributes).build()
}
mSoundResId = mSoundPool.load(this, R.raw.soundfile,1)
mSoundPool.play(mSoundResId, 1.0f, 1.0f, 0,0, 1.0f)