2011-09-19 64 views
0

我想爲此活動準備我的mediaplayer,當它準備好時,我想跳到另一個活動並在那裏啓動mediaplayer。它不會跳轉到其他活動,你可以幫我嗎?Android MediaPlayer

 public void run() { 

      try { 
       mp.setDataSource(urls.getFirst()); 
       mp.setAudioStreamType(AudioManager.STREAM_MUSIC);  
       mp.setOnPreparedListener(new OnPreparedListener() { 
        @Override 
        public void onPrepared(MediaPlayer mp) { 
         Intent i = new Intent(Start.this, RadyoBabylonActivity.class); 
         startActivity(i); 
        } 
       }); 
       mp.prepare(); 

      } catch (Exception e) { 

       e.printStackTrace(); 
      } 
     } 
    }); 
    th.start(); 

回答

2

我相信這裏的問題是,您正嘗試直接從後臺線程啓動Activity。我不相信這可以直接在Android中執行 - 相反,您必須從UI線程啓動Activity。因此,在Android中執行此操作的方法是使用HandlerHandler位於UI線程上,並從後臺線程接收消息以執行您的UI操作,例如從另一個Activity開始。

實施例:

//Inside your activity: 
final Handler messageHandler = new Handler() { 
    public void handleMessage(Message msg) 
    { 
     //Start Activity 
     Intent i = new Intent(Start.this, RadyoBabylonActivity.class); 
     startActivity(i); 
    } 
} 

//Inside onPrepared(MediaPlayer mp): 
messageHandler.sendEmptyMessage(0); 

參見:http://developer.android.com/reference/android/os/Handler.html