Created
July 12, 2021 00:46
-
-
Save codinginflow/9fc90f0ec0d99aa6a995eb4751f87090 to your computer and use it in GitHub Desktop.
SoundPool Tutorial
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:app="http://schemas.android.com/apk/res-auto" | |
xmlns:tools="http://schemas.android.com/tools" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:gravity="center" | |
android:orientation="vertical" | |
tools:context="com.codinginflow.soundpoolexample.MainActivity"> | |
<Button | |
android:id="@+id/button_sound1" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:onClick="playSound" | |
android:text="sound 1" /> | |
<Button | |
android:id="@+id/button_sound2" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:onClick="playSound" | |
android:text="sound 2" /> | |
<Button | |
android:id="@+id/button_sound3" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:onClick="playSound" | |
android:text="sound 3" /> | |
<Button | |
android:id="@+id/button_sound4" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:onClick="playSound" | |
android:text="sound 4" /> | |
<Button | |
android:id="@+id/button_sound5" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:onClick="playSound" | |
android:text="sound 5" /> | |
<Button | |
android:id="@+id/button_sound6" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:onClick="playSound" | |
android:text="sound 6" /> | |
</LinearLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.codinginflow.soundpoolexample; | |
import android.media.AudioAttributes; | |
import android.media.AudioManager; | |
import android.media.SoundPool; | |
import android.os.Build; | |
import android.support.v7.app.AppCompatActivity; | |
import android.os.Bundle; | |
import android.view.View; | |
public class MainActivity extends AppCompatActivity { | |
private SoundPool soundPool; | |
private int sound1, sound2, sound3, sound4, sound5, sound6; | |
private int sound3StreamId; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { | |
AudioAttributes audioAttributes = new AudioAttributes.Builder() | |
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION) | |
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) | |
.build(); | |
soundPool = new SoundPool.Builder() | |
.setMaxStreams(6) | |
.setAudioAttributes(audioAttributes) | |
.build(); | |
} else { | |
soundPool = new SoundPool(6, AudioManager.STREAM_MUSIC, 0); | |
} | |
sound1 = soundPool.load(this, R.raw.sound1, 1); | |
sound2 = soundPool.load(this, R.raw.sound2, 1); | |
sound3 = soundPool.load(this, R.raw.sound3, 1); | |
sound4 = soundPool.load(this, R.raw.sound4, 1); | |
sound5 = soundPool.load(this, R.raw.sound5, 1); | |
sound6 = soundPool.load(this, R.raw.sound6, 1); | |
} | |
public void playSound(View v) { | |
switch (v.getId()) { | |
case R.id.button_sound1: | |
soundPool.play(sound1, 1, 1, 0, 0, 1); | |
//soundPool.pause(sound3StreamId); | |
soundPool.autoPause(); | |
break; | |
case R.id.button_sound2: | |
soundPool.play(sound2, 1, 1, 0, 0, 1); | |
break; | |
case R.id.button_sound3: | |
sound3StreamId = soundPool.play(sound3, 1, 1, 0, 0, 1); | |
break; | |
case R.id.button_sound4: | |
soundPool.play(sound4, 1, 1, 0, 0, 1); | |
break; | |
case R.id.button_sound5: | |
soundPool.play(sound5, 1, 1, 0, 0, 1); | |
break; | |
case R.id.button_sound6: | |
soundPool.play(sound6, 1, 1, 0, 0, 1); | |
break; | |
} | |
} | |
@Override | |
protected void onDestroy() { | |
super.onDestroy(); | |
soundPool.release(); | |
soundPool = null; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment