[Service練習]音楽を再生させる

6/11の記事「[ToggleButton]ボタンのON/OFFが一目瞭然」
で作ったボタンに音楽再生・停止機能をつけてみました。

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.widget.Toast;

public class SoundControl extends Service {

  private NotificationManager mNM;
  MediaPlayer mp;

  @Override
  public IBinder onBind(Intent arg0) {
    return null;
  }

  @Override
  public void onCreate() {
    mp = MediaPlayer.create(this, R.raw.bgm);
    // 指定したリソースを再生するためのMediaPlayerを生成
  }

  @Override
  public void onStart(Intent intent, int startId) {
    try{
      mp.setLooping(true);   // ループを許可
      /*  mp.prepare();    // 準備(例外処理が必要)
      *   入れるとエラー。
      */
      mp.start();        // 再生
    }catch(Exception e){
      Log.d("xxxx","エラー発生"+e.getMessage());
    }
  }

  @Override
  public void onDestroy() {
    mp.stop();
    mp.release();

    Toast.makeText(this, "停止しました!", Toast.LENGTH_SHORT).show();
  }
}

MediaPlayerクラスのメソッド一覧
http://pentan.info/android/app/mediaplayer_method.html

作成方法参考
http://www.adamrocker.com/blog/213/android_play_music.html

prepare()でエラー↓ 1.5の場合ですが、MediaPlayer.createは内部でprepareを呼ぶので、アプリ側で明示的にprepareを呼んではならないようです。そのため、サンプルを動かすとIllegalStateExceptionになります。prepareを呼ばずにstartを呼ぶとうまくいきます。

作成方法
http://d.hatena.ne.jp/minghai/20080728/p2

    ↓いつもありがとうございます★ポチは更新の励みになります★↓
  • Twitter
  • にほんブログ村 鳥ブログ セキセイインコへ

コメントする

  プロフィール  PR:無料HP  スルガ自動車学校  給与滞納  Webデザイン 専門学校  エンドレス・アドバンス  タイヤ 寿命  タイヤ 取り付け  建築 専門学校  マツダ  民泊 運用  改装工事  投資顧問ベストプランナー  中古ホイール 豊橋市  バイアグラ 評判