Android Kotlin SoundPool()のdeprecated対応

個人開発したアプリの宣伝
目的地が設定できる手帳のような使い心地のTODOアプリを公開しています。
Todo with Location

Todo with Location

  • Yoshiko Ichikawa
  • Productivity
  • Free

スポンサードリンク

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)