Androidプログラマへの道 〜 Moonlight 明日香 〜 - 音声の再生を停止する

再生を停止する

  • MediaPlayer01.java
    • MediaPlayer#isPlayingメソッドで, 再生中か否かを調べる.
    • MediaPlayer#stopメソッドで, 再生を停止する.
    注) 再度再生を開始する場合, MeidaPlayer#startメソッドの前に, MediaPlayer#prepareメッソドを呼ぶ必要がある.
package com.moonlight_aska.android.mediaplayer01;

import java.io.IOException;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class MediaPlayer01 extends Activity implements View.OnClickListener {
  MediaPlayer player = null;
  Button btn = null;
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    btn = (Button)findViewById(R.id.button_id);
    btn.setOnClickListener(this);
    player = new MediaPlayer();
    try {
      player.setDataSource("/sdcard/MusicSample/sample.m4a");
    } catch (IllegalArgumentException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IllegalStateException e) {
      // TODO Auto-generated catch block
      e.printStackTrace()
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

  @Override
  public void onClick(View v) {
    // TODO Auto-generated method stub
    if (v == btn) {
      if (player.isPlaying()) {
        player.stop();
        startBtn.setText(R.string.start_label);
      }
      else {
        try {
          player.prepare();
        } catch (IllegalStateException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
        player.seekTo(0);
        player.start();
        startBtn.setText(R.string.stop_label);
      }
    }
  }

  @Override
  protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    Log.v("MediaPlayer", "onDestroy");
    if (player.isPlaying()) {
      player.stop();
    }
    player.release();
  }
}