我有3項活動。我想爲所有這些活動播放一首背景音樂。我通過這個做到了這一點。這樣做。播放/停止其他活動的聲音
在活動1:
bgmp = MediaPlayer.create(this, R.raw.menu);
bgmp.setLooping(true);
bgmp.start();
這會讓我的音樂玩到第三活性。在活動三。我需要停止這種背景音樂,因爲當我參加第4次活動時會播放另一種背景音樂。如何以第一項活動中創建的第三項活動來阻止音樂。有任何想法嗎?謝謝!
我有3項活動。我想爲所有這些活動播放一首背景音樂。我通過這個做到了這一點。這樣做。播放/停止其他活動的聲音
在活動1:
bgmp = MediaPlayer.create(this, R.raw.menu);
bgmp.setLooping(true);
bgmp.start();
這會讓我的音樂玩到第三活性。在活動三。我需要停止這種背景音樂,因爲當我參加第4次活動時會播放另一種背景音樂。如何以第一項活動中創建的第三項活動來阻止音樂。有任何想法嗎?謝謝!
在需要參數的普通類中定義方法,並在您的活動中使用該方法。
public class CommonMethod {
public static MediaPlayer player;
public static void SoundPlayer(Context ctx,int raw_id){
player = MediaPlayer.create(ctx, raw_id);
player.setLooping(false); // Set looping
player.setVolume(100, 100);
//player.release();
player.start();
}
}
在您的第三項活動中,停止媒體代碼。
CommonMethod.player.stop();
創建服務來播放聲音並將所有播放器代碼移動到服務中。
之後,將您的活動綁定到此服務並控制音樂播放器(播放下一個,後退,暫停,停止等)功能。
你應該開始服務,在後臺運行,並在服務播放音樂寫代碼..
做一個單獨的類並添加音樂播放代碼到它的停止和啓動,並使用單獨的類中的所有你的如3個活動:
public class MusicManager {
private static MusicManager refrence = null;
public static MusicManager getInstance(){
if(refrence == null){
refrence = new MusicManager();
}
return refrence;
}
}
添加一個公共的方法來此singleton類用於啓動和停止音樂像
public void initalizeMediaPlayer(Context context, int musicId){
// add initalization of media player in it and loop it
}
public void startPlaying(){
// add code to start playing music
}
public void stopPlaying(){
// add code to stop playing music
}
和FO r使用這個類使用像這樣
MusicManager.getInstance().initalizeMediaPlayer(this, R.raw.menu); // to initalize of media player
MusicManager.getInstance().startPlaying();// to start playing music
MusicManager.getInstance().stopPlaying(); // to stop playing music
讓我知道這是否對你有幫助。 意思是,您還可以使用service
來執行此任務,因爲service
在後臺運行。你就可以開始service
和停止service
代碼中的任何時間
所有你需要做的就是這段代碼添加到您的意圖,最後活動:
yourMediaPlayer.pause()
所以整個代碼將是:
yourMediaPlayer.pause();
Intent i ...
startActivity(i);
我應該在int raw_id中傳遞什麼? – ljpv14
CommonMethod.SoundPlayer(this,R.raw.menu); – RobinHood
在我的第一次活動中,這個類的實例會在第三個類中有所不同嗎?例如:在第一個活動中,我將創建一個通用類的實例作爲cc,然後cc.SoundPlayer(this,R.raw.menu)來播放音樂。在第三項活動中,我是否可以通過實例化常用類ex:cc來停止在第一個活動中創建的音樂,並使用此代碼。 cc.player.stop();?先謝謝你! – ljpv14