在调用MediaPlayer的play()方法之前,确保该对象所有状态都被正确初始化,包括资源的实例化和prepare()方法的调用。
MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(context, uri); mediaPlayer.prepare(); mediaPlayer.start();
当调用MediaPlayer开始播放下一首歌曲时,确保已经停止之前播放的歌曲,避免两首歌曲同时播放的情况。
if(mediaPlayer.isPlaying()) { mediaPlayer.stop(); }
可以使用MediaPlayer.OnCompletionListener、MediaPlayer.OnPreparedListener以及MediaPlayer.OnErrorListener监听MediaPlayer的状态,对应不同的状态调用相应的方法进行处理。
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mediaPlayer) { // 播放完成时的处理 } });
确保MediaPlayer对象使用的音频流类型正确。
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
当MediaPlayer完成播放任务时,需要调用reset()方法将其状态重置为初始状态。
mediaPlayer.reset();