7,622 views
この記事は最終更新から 1728日 が経過しています。
1. やりたいこと
画面をタップしたら音を鳴らしたい。
それだけ…
2. やってみる!
今回キーとなる要素は三つある。
(1) 音楽ファイルのリソース登録
(2) 画面タップの検知
(3) 音楽再生
Androidではどれも簡単に実装できるようにしてくれている。
(1) 音楽ファイルのリソース登録
Projectペインの res配下に raw ディレクトリを作り、そこに MP3なり WAVなりを登録すればよい。


rawディレクトリへの音楽ファイルの登録方法は、drawableディレクトリへの画像ファイル追加と同じ容量だ。
Explorerなどでファイルをコピーし、Projectペイン上の rawディレクトリでペーストすればよい。
(2) 画面タップの検知
onTouchEvent で通知される。
基本形は以下の通り。
@Override public boolean onTouchEvent( MotionEvent event ) {
float x = event.getX();
float y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// 押されたときの処理を書く。
break;
case MotionEvent.ACTION_MOVE:
// ドラッグされたときの処理を書く。
break;
case MotionEvent.ACTION_UP:
// 離されたときの処理を書く。
break;
}
return true;
}
(3) 音楽再生
SoundPool を使えばよい。
基本的な使い方は以下の通り。
SoundPool soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0); int sound_id = soundPool.load(context, R.raw.mysound, 1); soundPool.play(sound_id, 1.0F, 1.0F, 0, 0, 1.0F);
(4) 実装
たったのこれだけだ。
import android.media.AudioManager;
import android.media.SoundPool;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
public class MainActivity extends AppCompatActivity {
private SoundPool m_soundPool;
private int m_soundID;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
m_soundPool = new SoundPool(1,AudioManager.STREAM_MUSIC,0);
m_soundID = m_soundPool.load(this.getApplicationContext(), R.raw.cheer, 1);
}
@Override public boolean onTouchEvent( MotionEvent event ) {
if(event.getAction() == MotionEvent.ACTION_UP){
m_soundPool.play(m_soundID, 1.0F, 1.0F, 0, 0, 1.0F); // 音楽再生
}
return true;
}
}
3. 所感
・ゲームの効果音にはこの方法が使えそうだ。
・アプリを一般公開する場合、WEB上で拾った音楽ファイルの使用は著作権に注意すること。
アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済2025-12-14: 1回 2025-12-13: 0回 2025-12-12: 0回 2025-12-11: 1回 2025-12-10: 0回 2025-12-09: 3回 2025-12-08: 3回