2012-04-20 64 views
0

时,我想的是来电追踪从点后继续停止继续播放来电

我用这个代码:

public void playerUpdate(Player player, String event, Object data) { 

    if(event == PlayerListener.DEVICE_UNAVAILABLE) { 
     player.stop(); 
     isPause = true;  
    } 
    if(event == PlayerListener.DEVICE_AVAILABLE) { 


     if(isPause == true) { 

      player.start(); 


     } 
    } 

} 

但它不工作。轨道重新启动。

回答

3

而不是更新PlayerUpdate中的代码,请使用布尔值,并且当调用自动中断时,midlet会转到hideNotify()并保存mediaTime(可用)并使用showNotify()方法恢复播放器并更改布尔值并启动玩家与player.start();和player.setMediaTime(savedmTime);

这是一段代码。

protected void hideNotify() {   

    resume = false; 
    paintMessage = false; 


    mediaTime = player.getMediaTime(); 
} 

// calls while resuming the application. 

protected void showNotify() { 
    if (mediaTime != 0) { 
     if (pause) { 

      resume = false; 


      midlet.lcduiDisplay.callSerially(repainter); 
      mediaTime = player.getMediaTime(); 
      pausePlayer(); 
     } else { 


      resume = true; 


      long med = mediaTime/1000; 
      med = med/1000; 
      message = "Resuming...from " + med; 

      play(mediaTime); 
     } 
    } 
} 
+0

传入呼叫之后player.getMediaTime()总是返回0.什么是问题? – Tim 2012-04-25 13:00:29

+0

您需要全局存储mediaTime并在调用hideNotify()之前保存并检查player.getDuration是否返回正值。 – 2012-04-25 13:16:10