Putar/Hentikan suara dari aktivitas lain

Saya memiliki 3 kegiatan. Saya ingin memutar satu musik latar untuk semua aktivitas ini. Saya membuat hal ini mungkin terjadi dengan. Melakukan ini.

Dalam aktivitas 1:

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

Ini akan membuat musik saya diputar hingga aktivitas ke-3. Pada kegiatan ketiga. Saya perlu menghentikan musik latar ini karena musik latar lain akan diputar saat saya melanjutkan ke aktivitas ke-4. Bagaimana cara menghentikan musik pada aktivitas ke-3 yang dibuat pada aktivitas pertama. Ada ide? Terima kasih!


person Luke Villanueva    schedule 06.02.2013    source sumber


Jawaban (6)


Tentukan Metode di kelas umum dengan parameter yang diperlukan dan gunakan Metode itu dalam aktivitas Anda.

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

Dalam aktivitas ketiga Anda, kode untuk menghentikan media.

CommonMethod.player.stop();

person RobinHood    schedule 06.02.2013
comment
Apa yang harus saya berikan di int raw_id? - person Luke Villanueva; 06.02.2013
comment
CommonMethod.SoundPlayer(ini, R.raw.menu); - person RobinHood; 06.02.2013
comment
Apakah contoh kelas ini pada aktivitas pertama saya akan berbeda di kelas ketiga? Misalnya: Pada aktivitas pertama, saya akan membuat instance kelas umum sebagai cc, lalu cc.SoundPlayer(this, R.raw.menu) untuk memutar musik. Pada aktivitas ketiga, apakah saya dapat menghentikan musik yang dibuat pada aktivitas pertama hanya dengan membuat instance kelas umum mis: cc, dan menggunakan kode ini. cc.pemain.stop();? Terima kasih sebelumnya! - person Luke Villanueva; 06.02.2013
comment
periksa Saya memperbarui jawaban saya, cukup hubungi CommonMethod.player.stop(); di aktivitas ketiga Anda - person RobinHood; 06.02.2013

Buat layanan untuk memutar suara dan pindahkan semua kode pemutar Anda ke layanan.

Setelah itu ikat aktivitas Anda ke layanan ini dan kendalikan pemutar musik untuk fitur (putar berikutnya, kembali, jeda, hentikan, dll.).

person Dharmendra    schedule 06.02.2013

Buatlah kelas tunggal dan tambahkan kode pemutaran musik Anda ke dalamnya untuk menghentikan dan memulai dan gunakan kelas tunggal tersebut dalam semua 3 aktivitas Anda misalnya:

public class MusicManager {

    private static MusicManager refrence = null;

    public static MusicManager getInstance(){
        if(refrence == null){
            refrence = new MusicManager ();
        }
        return refrence;
    }

}

tambahkan metode publik ke kelas tunggal ini untuk memulai dan menghentikan musik sejenisnya

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
}

Dan untuk memanfaatkan kelas ini gunakan seperti ini

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

Beri tahu saya jika ini membantu Anda. Sementara itu Anda juga dapat menggunakan service untuk melakukan tugas ini saat service berjalan di latar belakang. Anda dapat memulai service dan menghentikan service kapan saja dalam kode Anda

person Abhinav Singh Maurya    schedule 06.02.2013

Anda Harus Memulai Layanan yang berjalan di latar belakang dan menulis kode untuk memutar musik di layanan..

person gorenikhil33    schedule 06.02.2013

Yang harus Anda lakukan adalah menambahkan potongan kode ini ke maksud Anda pada aktivitas terakhir:

yourMediaPlayer.pause()

Jadi keseluruhan kodenya adalah:

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

Masukkan saja fungsi player.stop() di dalam tombol yang akan membawa Anda ke aktivitas berikutnya:

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