2010-09-20 39 views
1

我正在嘗試使用MediaView使用videoView播放音頻。音頻播放良好,當我點擊返回鍵控制返回到以前的狀態。但是當我從啓動屏幕再次選擇活動時,活動會顯示,但音樂不會播放。任何人都可以幫我解決這個問題嗎? 的代碼如下:提前點擊返回鍵並返回Android中的活動後音樂不播放

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.video); 

     videoView = (VideoView)this.findViewById(R.id.videoView); 
     videoView.setVideoPath("http://www.pocketjourney.com/downloads/pj/video/famous.3gp"); 
     final MediaController mc = new MediaController(this); 
     videoView.setMediaController(mc); 
     videoView.setVideoURI(Uri.parse("http://www.pocketjourney.com/downloads/pj/tutorials/audio.mp3")); 


     videoView.requestFocus(); 
     videoView.start(); 
     videoView.setMediaController(new MediaController(this) 
     { 
      public void hide() 
      { 
       System.out.println("HIDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEHELLLOO"); 
       mc.show(); 
      } 
     }); 




} 


public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) {   
     moveTaskToBack(true); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 


感謝

回答

1

如果你正在嘗試播放音樂,只有當活動是在前臺,要啓動和停止音樂onResume和,不在創建。

看一看Activity Lifecycle。 OnCreate僅在創建活動時調用一次。如果活動進入後臺並重新出現,則可能不會被調用。

0
# use this code...the song plays even if the user presses his back button # 

public void playAudio(){ 
    MediaPlayer mp = new MediaPlayer(); 
    try { 
     mp.setDataSource("/sdcard/fileaudio.mp3"); 
     mp.prepare(); 
     mp.start(); 
    } catch (IllegalArgumentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    mp.setOnCompletionListener(new OnCompletionListener() { 

     @Override 
     public void onCompletion(MediaPlayer mp) { 
      // TODO Auto-generated method stub 
      //playAudio(); 
     } 
    }); 

} 
public void onBackPressed() { 
    Intent intent = new Intent(); 
    intent 
     .setAction(Intent.ACTION_MAIN) 
     .addCategory(Intent.CATEGORY_HOME) 
     .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 

    finish(); 
} 
相關問題