MediaPlayer.getCurrentPosition IllegalStateException 오류

5450 단어
09-06 20:13:48.298: E/AndroidRuntime(11463): FATAL EXCEPTION: Thread-1109-06 20:13:48.298: E/AndroidRuntime(11463): java.lang.IllegalStateException09-06 20:13:48.298: E/AndroidRuntime(11463): at android.media.MediaPlayer.getCurrentPosition(Native Method)09-06 20:13:48.298: E/AndroidRuntime(11463): at com.leranxinsheng.activity.MusicService.run(MusicService.java:236)09-06 20:13:48.298: E/AndroidRuntime(11463): at java.lang.Thread.run(Thread.java:1019)
 
재생된 인터페이스에서 다른 인터페이스로 이동할 때 MediaPlayer가 계속 표시됩니다.getCurrentPosition IllegalStateException의 오류입니다.나중에 생각해 보니 플레이어가 있는 액티비티가 OnStop 상태에 들어갔기 때문에 백그라운드에서 음악 진도표를 조정하는 서비스로 하여금 진도표 (MediaPlayer.getCurrent Position) 를 가져오는 것은 합법적이지 않을 것이다.
 
 
원본 코드는 다음과 같다.
 1     public void run() {
 2         // TODO Auto-generated method stub
 3         while (isRun) {
 4             try {
 5                 Thread.sleep(200);
 6             } catch (InterruptedException e) {
 7                 // TODO Auto-generated catch block
 8                 e.printStackTrace();
 9             }
10 ////////////////////// /////////////////////
11             if (null != player) {
12                  if (!player.isPlaying()) {// , 
                            // ,
13 Log.d(strTag, " , "); 14 break; 15 } 16 /////////////////////////////////////////////////////////////// 17 int position = player.getCurrentPosition(); 18 int total = player.getDuration(); 19 Intent intent = new Intent("com.leranxinsheng.progress"); 20 intent.putExtra("position", position); 21 intent.putExtra("total", total); 22 sendBroadcast(intent); 23 } 24 25 if (null != player) { 26 if (player.isPlaying()) { 27 playing = true; 28 } else { 29 Log.d(strTag, " , if"); 30 playing = false; 31 } 32 } 33 } 34 }

좋은 웹페이지 즐겨찾기