[点击项目时如何在另一个活动中使用Media Player暂停mp3?

问题描述 投票:0回答:1

我使mp3播放器脱机,在MainActivity中,有一个歌曲列表,当单击某个项目时,它将把意图发送的歌曲数据发送到PlayActivity。我想单击另一首歌曲,然后暂停当前歌曲。我该怎么办?下面是我的代码

MainActivity

公共类MainActivity扩展了AppCompatActivity {

//deklarasi variabel -->
MediaPlayer mediaPlayer;
ListView listView;
final String[] song_name = { "intuisi", "krisis solusi" };
final int[] ResID = {R.raw.intuisi, R.raw.krisis};
ImageView img_play;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //inisialisasi variabel
    mediaPlayer = new MediaPlayer();
    listView = findViewById(R.id.list_item);

    //make adapter for listview
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, song_name);
    listView.setAdapter(adapter);
    //onClick item
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            playSong(i);

        }
    });
}

private void playSong(int songIndex) {
    //send song data to playActivity
    Intent intent = new Intent(MainActivity.this, Play.class);
    intent.putExtra("song", ResID[songIndex]);
    startActivity(intent);

}

PlayActivity

int Nama = getIntent()。getIntExtra(“ song”,0);

    mediaPlayer = MediaPlayer.create(getApplicationContext(), Nama);

    if (mediaPlayer != null && mediaPlayer.isPlaying()) {
        mediaPlayer.pause();
    } else {
        mediaPlayer.start();
    }
java android android-mediaplayer
1个回答
0
投票

您可以创建一个单独的单例助手类,以使用某些上下文方法(例如播放,暂停,停止等)来处理音乐播放器。>

public class MusicHelper {
    private static MusicHelper instance;
    MediaPlayer mPlayer;
    private MusicHelper() {
        instance = new MusicHelper();
    }

    public static MusicHelper getInstance() {
        return instance;
    }

    public void init(Context ctx, int nama) {
        mPlayer = MediaPlayer.create(getApplicationContext(), nama);
    }

    public void play() {
        if (mPlayer != null && !mPlayer.isPlaying()) {
            mPlayer.start();
        }
    }

    public void pause() {
        if (mPlayer!= null && mPlayer.isPlaying()) {
            mPlayer.pause();
        }
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.