1

我有 3 个活动。我想为所有这些活动播放一首背景音乐。我使这成为可能。这样做。

在活动 1 中:

bgmp = MediaPlayer.create(this, R.raw.menu);
bgmp.setLooping(true);
bgmp.start();

这将使我的音乐播放到第三个活动。在活动三。我需要停止此背景音乐,因为当我进行第 4 项活动时,将播放另一种背景音乐。如何在第一个活动中创建的第三个活动中停止音乐。有任何想法吗?谢谢!

4

6 回答 6

3

使用需要参数在公共类中定义方法,并在您的活动中使用该方法。

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();

于 2013-02-06T12:25:53.953 回答
1

创建一个服务来播放声音并将所有播放器代码移动到服务中。

之后将您的活动绑定到此服务并控制音乐播放器的(播放下一个、返回、暂停、停止等)功能。

于 2013-02-06T12:29:49.373 回答
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

于 2013-02-06T12:37:25.307 回答
0

您应该启动在后台运行的服务并编写用于在服务中播放音乐的代码..

于 2013-02-06T12:33:31.747 回答
0

您所要做的就是将这段代码添加到最后一个活动的意图中:

yourMediaPlayer.pause()

所以整个代码是:

yourMediaPlayer.pause();
Intent i ...
startActivity(i);
于 2017-11-20T15:35:17.747 回答
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();
            }
于 2021-05-23T10:51:21.983 回答