1
我正在嘗試構建一個應用程序,在每次調用onCreate()時播放一段音樂,並且我希望在整個應用程序(即跨活動)中播放此音樂。到目前爲止,我所做的是在OnCreate()內創建一個Thread,並將其稱爲backgroundMusic,在其中創建了一個來自我的Raw文件夾中音樂片段的MediaPlayer對象。考慮到音樂本身只運行一分鐘左右,平均花在應用程序上的時間更多,我做了一段時間循環,只要應用程序運行檢查音樂是否正在播放,如果不是,則調用start() ;應用程序的背景音樂應該擁有自己的主題嗎?
backgroundMusic = new Thread(new Runnable() {
@Override
public void run() {
while (appIsRunning){
if(! music.isPlaying()){
music.start();
}
}
}
});backgroundMusic.start();
代碼運行得很好,但是我也特別注意到有些滯後後,當一些其他線程和圖像獲取loaded.what我想問一下,這是一個合適的方式來播放背景音樂?有沒有更好的方法來做到這一點? 另外,如何在應用程序關閉時讓音樂停止?
感謝凱,這就是我一直在尋找的。我想問你,如果服務在UI線程中運行,如果是的話,我會需要一個線程內的? – RaedTabani
很高興它幫助! UI線程上的音樂很好,因爲新的服務也會在UI線程中產生。但是,您也可以在服務中啓動線程,但音樂播放器不需要線程。隨時接受答案:) – Kay
絕對:)但是,我可以得到您對ToasteR的答案的反饋?他建議使用Asynctask – RaedTabani