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に修正しました)
効果音をつけるとアプリの完成度が上がりますね
楽しさも増す感じです