前々回は、【初公開】androidアプリ初公開で一番つまずいた広告の挿入
前回は、ListViewのスクロール時の色が設定した色にならないのを解消する
って感じで書いてきましたが、android開発ブログ第3弾は、SoundPoolによる効果音の設定です!
最近公開したアプリ「いろはにほへと!」では、SoundPoolクラスを使って効果音を出しています。
最初は、MediaPlayerクラスを使って効果音を出していたのですが、タイムを競うような反応速度がシビアなゲームの場合、ちょっとタイムラグが気になるんです。
で、SoundPoolクラスを使うように変更しました。
1.onCreateでサウンドプールを生成
まずは以下のようにサウンドプールを生成します。
SoundPoolの第一引数は、サウンドを保持する数です。
private SoundPool soundPool;
private int sound1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// サウンドプールの生成
Context context = this.getApplicationContext();
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
sound1 = soundPool.load(context, R.raw.sound1, 1);
2.現在設定されている音量を取得
これはやらなくてもいいですが、音量調節はできた方がいいので一応。
private SoundPool soundPool;
private int sound1;
private int volume;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// サウンドプールの生成
Context context = this.getApplicationContext();
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
sound1 = soundPool.load(context, R.raw.効果音1, 1);
AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
volume = audio.getStreamVolume(AudioManager.STREAM_RING);
3.効果音を再生する
音を出したいところで、以下のように呼び出す。
soundPool.play(sound1, (float)volume, (float)volume, 0, 0, 1.0f);
4.終了する時には開放する
protected void onDestroy() {
super.onPause();
gLSurfaceView.onPause();
// サウンドプールを開放する
soundPool.release();
ってな感じでした!
前回は、ListViewのスクロール時の色が設定した色にならないのを解消する
って感じで書いてきましたが、android開発ブログ第3弾は、SoundPoolによる効果音の設定です!
最近公開したアプリ「いろはにほへと!」では、SoundPoolクラスを使って効果音を出しています。
最初は、MediaPlayerクラスを使って効果音を出していたのですが、タイムを競うような反応速度がシビアなゲームの場合、ちょっとタイムラグが気になるんです。
で、SoundPoolクラスを使うように変更しました。
1.onCreateでサウンドプールを生成
まずは以下のようにサウンドプールを生成します。
SoundPoolの第一引数は、サウンドを保持する数です。
private SoundPool soundPool;
private int sound1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// サウンドプールの生成
Context context = this.getApplicationContext();
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
sound1 = soundPool.load(context, R.raw.sound1, 1);
2.現在設定されている音量を取得
これはやらなくてもいいですが、音量調節はできた方がいいので一応。
private SoundPool soundPool;
private int sound1;
private int volume;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// サウンドプールの生成
Context context = this.getApplicationContext();
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
sound1 = soundPool.load(context, R.raw.効果音1, 1);
AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
volume = audio.getStreamVolume(AudioManager.STREAM_RING);
3.効果音を再生する
音を出したいところで、以下のように呼び出す。
soundPool.play(sound1, (float)volume, (float)volume, 0, 0, 1.0f);
4.終了する時には開放する
protected void onDestroy() {
super.onPause();
gLSurfaceView.onPause();
// サウンドプールを開放する
soundPool.release();
ってな感じでした!