2011-10-26 77 views
0

應用程序有7-8個活動,所以我創建了一個應用程序,其中包含所有這些活動的背景音樂。媒體播放器幫助Android

private void playAudio() { 
     mMediaPlayer = MediaPlayer.create(this, R.raw.test_cbr); 
     mMediaPlayer.start(); 
     mMediaPlayer.setLooping(true); 
    } 

無論如何,我想在其他活動停止這種背景音樂,並開始新的。所以我們在這裏討論不同的課程。

如何做到這一點?

無論如何,當我按下家裏,或後退按鈕音樂仍然播放?如何解決這個問題?

在此先感謝。 :)

編輯:

有了這些代碼我設法停止音樂,當我按下BACK按鈕。

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

回答

0

Anyway when I press home, or back button music still plays? How to solve that problem?

處理的媒體播放器實例時onPause()被稱爲

protected void onPause() { 
    mMediaPlayer.pause(); 
} 

爲了您的主要問題:background music in application, across Activities,創建一個Service,它會做的工作。

或者參考一些已經存在的討論:Playing BG Music Across Activities in Android

+0

謝謝,但我已經嘗試過使用此代碼,但它無法播放音樂。這裏是代碼:http://pastebin.com/Aej7DL9d的Service類,並在主要活動我寫道:Intent svc = new Intent(this,BackgroundSoundService.class); startService(svc); – Zookey

+0

我很愚蠢,我沒有把放在Android Manifest文件下。我嘗試過使用onPause(),但它仍然在播放。 – Zookey

+0

如果'onPause()'不適合你,覆蓋這個'onNewIntent()'這是處理新聞事件到'HOME'鍵,它必須工作,如果仍然不能再工作,檢查你的實現,你的代碼。 –

0

使靜態singelton類,控制你的媒體播放器,你可以停下來,在每個活動啓動它。 要停止音樂,您可以在onPause上停止並在onResume中重新啓動。