日々是好日~every day is a good day~

日常の中の非日常の備忘録

【Android Studio】サウンドプールの作成

Android Studio kotlinのメソッドパーツ化
今回は効果音を鳴らすときに使うサウンドプールです

サウンドプール作成

val audioAttributes = AudioAttributes.Builder()
            //USAGE_MEDIA , USAGE_GAME
            .setUsage(AudioAttributes.USAGE_GAME) 
            //CONTENT_TYPE_MUSIC ,CONTENT_TYPE_SPEECH, etc.
            .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)  
            .build()

val soundPool = SoundPool.Builder()
            .setAudioAttributes(audioAttributes)
            .setMaxStreams(1)   // ストリーム数
            .build()
val  sound = soundPool.load(this, R.raw.sound, 1)

サウンドプール再生

soundPool.play(sound, 1.0f, 1.0f, 1, 0, 1.0f)

サウンドプールメモリ解放

soundPool.release()

使用例はこちら(xmlファイルは省略します)

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.media.AudioAttributes
import android.media.SoundPool
import android.widget.Button

class MainActivity : AppCompatActivity() {
    lateinit var soundPool: SoundPool
    var chime = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val audioAttributes = AudioAttributes.Builder()
            //USAGE_MEDIA , USAGE_GAME
            .setUsage(AudioAttributes.USAGE_GAME)
            //CONTENT_TYPE_MUSIC , CONTENT_TYPE_SPEECH, etc.
            .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
            .build()

        soundPool = SoundPool.Builder()
            .setAudioAttributes(audioAttributes)
            .setMaxStreams(1)   //ストリーム数
            .build()

        chime = soundPool.load(this, R.raw.chime, 1)

        val btchime: Button = findViewById(R.id.btchime)
        val btend: Button = findViewById(R.id.btend)
        btchime.setOnClickListener{
            //サウンドプール再生
            soundPool.play(chime, 1.0f, 1.0f, 1, 0, 1.0f)
        }
        btend.setOnClickListener{
            //サウンドプールメモリ解放
            soundPool.release()
            System.exit(0)
        }
    }
}


(再生できなくなっていたので2024.1.26に修正しました)

効果音をつけるとアプリの完成度が上がりますね
楽しさも増す感じです