我有 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;
}
}
向这个单例类添加一个公共方法来启动和停止音乐,比如
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
您应该启动在后台运行的服务并编写用于在服务中播放音乐的代码..
您所要做的就是将这段代码添加到最后一个活动的意图中:
yourMediaPlayer.pause()
所以整个代码是:
yourMediaPlayer.pause();
Intent i ...
startActivity(i);
只需将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();
}