Воспроизвести/остановить звук другого действия

У меня есть 3 мероприятия. Я хочу играть одну фоновую музыку для всей этой деятельности. Я сделал это возможным благодаря. Делая это.

В упражнении 1:

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

Это заставит мою музыку играть до 3-й активности. На третьей активности. Мне нужно остановить эту фоновую музыку, потому что другая фоновая музыка будет воспроизводиться, когда я перейду к 4-му действию. Как я могу остановить музыку в 3-м действии, которое было создано в 1-м действии. Любые идеи? Спасибо!


person Luke Villanueva    schedule 06.02.2013    source источник


Ответы (6)


Определите метод в общем классе с требуемыми параметрами и используйте этот метод в своих действиях.

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

person RobinHood    schedule 06.02.2013
comment
Что я должен передать в int raw_id? - person Luke Villanueva; 06.02.2013
comment
CommonMethod.SoundPlayer(это, R.raw.menu); - person RobinHood; 06.02.2013
comment
Будет ли экземпляр этого класса в моем первом действии отличаться от третьего класса? Например: в первом действии я создам экземпляр общего класса как cc, затем cc.SoundPlayer(this, R.raw.menu) для воспроизведения музыки. Смогу ли я при третьем действии остановить музыку, созданную при 1-м действии, просто создав экземпляр общего класса ex: cc и используя этот код. cc.player.stop();? Заранее спасибо! - person Luke Villanueva; 06.02.2013
comment
проверьте, я обновил свой ответ, просто позвоните CommonMethod.player.stop(); в вашем третьем действии - person RobinHood; 06.02.2013

Создайте службу для воспроизведения звука и переместите весь код вашего проигрывателя в службу.

После этого привяжите свою деятельность к этой службе и управляйте музыкальным проигрывателем для функций (воспроизведение дальше, назад, пауза, остановка и т. д.).

person Dharmendra    schedule 06.02.2013

Создайте одноэлементный класс и добавьте в него код воспроизведения музыки для остановки и запуска и используйте этот одноэлементный класс во всех трех ваших действиях, например:

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 в любое время в вашем коде

person Abhinav Singh Maurya    schedule 06.02.2013

Вы должны запустить службу, которая работает в фоновом режиме, и написать код для воспроизведения музыки в службе.

person gorenikhil33    schedule 06.02.2013

Все, что вам нужно сделать, это добавить этот фрагмент кода в ваше намерение к последнему действию:

yourMediaPlayer.pause()

Таким образом, весь код будет:

yourMediaPlayer.pause();
Intent i ...
startActivity(i);
person BLRBoy    schedule 20.11.2017

Просто поместите функцию 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();
            }
person saikat samanta    schedule 23.05.2021