SurfaceView系クラスで実装したRunnable.run()から実行している,同じクラス内のメソッドです.
lang
1 private void timer(){ 2 final MediaPlayer player = MediaPlayer.create(getContext(), R.raw.decision1); 3 player.setOnCompletionListener(new OnCompletionListener() { 4 5 @Override 6 public void onCompletion(MediaPlayer mp) { 7 mp.pause(); 8 } 9 }); 10 player.start(); //1回目(描写前) 11 /* 12 * 15秒間描写処理 13 */ 14 if (running) { //15秒経過により描写終了した時 15 player.seekTo(0); 16 player.start(); //2回目(描写終了後) 17 Message msg = Message.obtain(); 18 msg.obj = HeartBeatActivity.FINISH; 19 handler.sendMessage(msg); 20 } 21 player.release(); 22 }
描写開始前に音(1秒程度)を鳴らし,15秒間の描写が終わったらもう一度同じ音を鳴らすようにしたいのですが,
普通に実行すると2回目の音が鳴りません.
また,次のようなログが出ます.
04-19 16:44:29.352: D/MediaPlayer(31560): start() mUri is null
04-19 16:44:30.333: D/MediaPlayer(31560): pause() mUri is null
04-19 16:44:44.358: D/MediaPlayer(31560): seekTo() mUri is null
04-19 16:44:44.378: D/MediaPlayer(31560): start() mUri is null
ifにブレークポイントを置いてステップオーバーしていくと,player.start();
で音が鳴ります.
普通に2回目の音を鳴らすにはどう修正すればいいのでしょうか.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。