2011年1月26日水曜日

Androidで音を鳴らす

resフォルダの中にrawフォルダを作って、その中に音声ファイルを保存。
mediaPlayer=MediaPlayer.create(getContext(),R.raw.test_bgm);
javaファイルの中にこんな感じで音声ファイルを登録処理を書くが、eclipseはエラーを出しています。しかしそのまま保存。
そしてR.javaファイルにrawクラスとtest_bgm定数が自動で書き込まれるのを待つ。ここの自動的に書き込まれるっていう部分がまだよくわからないが、とにかくR.javaに自動的に書き込まれるようにする。自分で書き込むとビルドできなかったりした。
あとは簡単。

private MediaPlayer mediaPlayer; //プレーヤー

//サウンドの再生
public void playSound() {
  try {
    mediaPlayer=MediaPlayer.create(getContext(),R.raw.test_bgm3);
    mediaPlayer.start();
    mediaPlayer.setOnCompletionListener(this);
  } catch (Exception e) {
  }
}

//サウンドの停止
public void stopSound() {
  try {
    mediaPlayer.stop();
    mediaPlayer.setOnCompletionListener(null);
    mediaPlayer.release();
    mediaPlayer=null;
  } catch (Exception e) {
  }
}

@Override//サウンド再生終了時に呼ばれる
public void onCompletion(MediaPlayer arg0) {}

ViewとMediaPlayer.OnCompletionListenerを継承する。
コンストラクタの中で
super(context);
を書いておいて、後は音を鳴らしたいところでplaySound()を呼んでやる。stopSound()で音の終了。





0 件のコメント:

コメントを投稿