我有3项活动。我想为所有这些活动播放一首背景音乐。我做到了这一点。这样做。
活动1:
bgmp = MediaPlayer.create(this, R.raw.menu);
bgmp.setLooping(true);
bgmp.start();
这将使我的音乐达到第3个活动效果。在活动三。我需要停止这种背景音乐,因为当我进入第4次活动时将播放另一种背景音乐。如何在第1个活动中创建的第3个活动时停止播放音乐。有任何想法吗?谢谢!
答案 0 :(得分:3)
使用require参数在公共类中定义Method,并在您的活动中使用该方法。
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();
答案 1 :(得分:1)
创建一个播放声音的服务,并将所有播放器代码移至服务中。
之后将您的活动绑定到此服务并控制音乐播放器(播放下一个,后退,暂停,停止等)功能。
答案 2 :(得分:1)
创建一个单例类并将音乐播放代码添加到其中以停止和启动并在所有3个活动中使用该单例类,例如:
public class MusicManager {
private static MusicManager refrence = null;
public static MusicManager getInstance(){
if(refrence == null){
refrence = new MusicManager ();
}
return refrence;
}
}
为此单例类添加一个公共方法,以启动和停止音乐,如
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
}
为了使用这个类,请使用这个
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
答案 3 :(得分:0)
你应该启动在后台运行的服务并编写用于在服务中播放音乐的代码..
答案 4 :(得分:0)
您所要做的就是将这段代码添加到您最后一项活动的意图中:
yourMediaPlayer.pause()
所以整个代码是:
yourMediaPlayer.pause();
Intent i ...
startActivity(i);
答案 5 :(得分:0)
只需将 player.stop()
函数放在按钮中,即可带您进入下一个活动:
example: @Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
player.stop();
Intent i=new Intent(iotmain.this,MainActivity.class);
startActivity(i);
Toast.makeText(getBaseContext(),"Chatting mode ON",Toast.LENGTH_SHORT).show();
}