diadia

興味があることをやってみる。自分のメモを残しておきます。

Androidで音を扱う

参考

https://developer.android.com/reference/kotlin/android/media/SoundPool.html

https://developer.android.com/reference/kotlin/android/media/SoundPool.Builder

https://developer.android.com/reference/kotlin/android/media/AudioAttributes.html

https://developer.android.com/reference/kotlin/android/media/AudioAttributes.Builder.html

SoundPool で効果音を鳴らしてみる

サンプルコード

//サウンドプールインスタンスを生成
val soundPool : SoundPool = SoundPool.Builder()
  .setAudioAttributes(attributes: AudioAttributes!)
  .setMaxStreams(maxStreams: Int)
  .build()

//サウンドプールで出す音を設定(メモリに乗せる)
val soundId = soundPool.load(context: Context!, resId: Int, priority: Int)

//音を流す(loadメソッド)
soundPool.play(soundID: Int, leftVolume: Float, rightVolume: Float, priority: Int, loop: Int, rate: Float)

//メモリ上の音を消去する
soundPool.release()
//サウンドプールインスタンスを生成
val soundPool : SoundPool = SoundPool.Builder()
  .setAudioAttributes(
      AudioAttributes.Builder()
      .setUsage(AudioAttributes.USAGE_MEDIA)
      .build())
  .setMaxStreams(maxStreams: Int)
  .build()

//サウンドプールで出す音を設定(メモリに乗せる)
val soundId = soundPool.load(this, R.raw.mySound, 1)

//音を流す(loadメソッド)
soundPool.play(soundId, 1.0f, 1.0f, 1, 0, 1.0f)

//メモリ上の音を消去する
soundPool.release()