2012-01-06 76 views
1

嗨,大家好我试着停在某一点媒体播放器,但它不工作了我下面是我的代码让我知道什么是错在此代码。停止的MediaPlayer在某一点

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

媒体播放器在指定的点开始,并继续玩,当我调试它,它涉及到if条件,它仍然继续发挥没有错误(据我所知)显示,我打与此同时,如果条件和逐行调试,但无法弄清楚,请帮助我感谢您的时间

回答

2

尝试绑定的时间:

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

但是,明智地利用这一点,你可能冻结的东西,在ANR结束。

你介意使用ThreadHandler延迟为1000毫秒发现有用的,但作为@ dhaag23提到的,它不可能得到确切Stop

+0

Thx的建议,整个文件不能阻止我的应用程序,仍然边界范围冻结的其他按钮它不会停止mp3。 – optimus 2012-01-07 11:16:58

+0

thx是的,正如你所说我没有确切的变化,但我用处理程序和线程来读取当前的MP3位置和使用范围,因为你建议和它的工作,非常感谢你 – optimus 2012-01-07 12:31:24

1

媒体播放器命令通常异步执行,所以你得到的机会是当前位置正好是“停止”位置不太可能。也许你想给你的测试更改为:

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

:THX的答复,但对我来说它永远不会停止它忽略了,如果条件和全程播放,停止,则不会调用 – optimus 2012-01-07 01:19:15

+0

,我认为它忽视了如果条件出于某种原因,我试图在上面,但它再次扮演在所有 – optimus 2012-01-07 01:27:18