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