2012-01-06 12 views
1

こんにちは、私は特定のポイントでmediaplayerを停止しようとしていますが、私のコードは私にこのコードで間違っていることを教えてくれます。特定のポイントでMediaPlayerを停止します

int Str = 36000; 
       int Stop = 51000; 
       mediaPlayer.seekTo(Str); 
       mediaPlayer.start(); 
       if(mediaPlayer.getCurrentPosition() == Stop) 
       { 
        mediaPlayer.stop(); 
       } 

メディアプレーヤーは、指定された点から始まり、それは私がそれをデバッグするとき、表示されている(私の知る限り知っている)、それは条件場合に来ると、それはまだエラーを再生しないように続けて、再生し続け、私が演じwhileで、条件ごとに行をデバッグする場合、私はあなたの時間のおかげで助けてください

答えて

2

試してみてください:たぶん、あなたはにあなたのテストを変更したい

while(mediaPlayer.getCurrentPosition() >= Str && mediaPlayer.getCurrentPosition() <= Stop) 
{ 
} 

しかし、賢明にこれを使用し、あなたが何かを凍結し、ANRに終わるかもしれません。

あなたは1000ミリ秒に便利使用してThreadHandler遅延を見つけること気にしますが、@ dhaag23が述べたように、正確なStop

+0

提案のためのThxそれはmp3を停止しません。 – optimus

+0

あなたが言ったように私は正確な変更はしていませんが、ハンドラとスレッドを使ってmp3の現在の位置を読んだり、 – optimus

1

メディアプレイヤーのコマンドは通常、非同期的に実行されるので、現在の位置が正確に "停止"ポジションはありそうもない。時間を拘束さ

if(mediaPlayer.getCurrentPosition() >= Stop) 
+0

を得るために、その可能性は低い:返信用Thxをしますが、私の場合には、それがあれば条件を無視して停止することはありません最後まで再生するStopは呼び出されない – optimus

+0

何らかの理由でif条件が無視されると思うが、私は上記を試してみるが、ファイル全体が再生されないようにする。 – optimus

関連する問題