For play music from remote server everything works when I use audioPlayer.prepare();
everything work, but I play song from remote server, so I have to use
audioPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
audioPlayer.prepareAsync();
But when I use this, music not playing, also I notice that MediaPlayer.OnPreparedListener not calling.
Code:
public boolean playAudio(SongDetail mSongDetail) {
if (mSongDetail == null) {
return false;
}
if ((audioTrackPlayer != null || audioPlayer != null) && MusicPreferance.playingSongDetail != null && mSongDetail.getId() == MusicPreferance.playingSongDetail.getId()) {
if (isPaused) {
resumeAudio(mSongDetail);
}
return true;
}
if (audioTrackPlayer != null) {
MusicPlayerService.setIgnoreAudioFocus();
}
cleanupPlayer(!playMusicAgain, false);
playMusicAgain = false;
File file = null;
try {
audioPlayer = new MediaPlayer();
audioPlayer.setAudioStreamType(useFrontSpeaker ? AudioManager.STREAM_VOICE_CALL : AudioManager.STREAM_MUSIC);
audioPlayer.setDataSource("http://admin.kobyzbook.kz/Audios/2016915164335.mp3");
audioPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
MusicPreferance.playingSongDetail.audioProgress = 0.0f;
MusicPreferance.playingSongDetail.audioProgressSec = 0;
if (!MusicPreferance.playlist.isEmpty() && MusicPreferance.playlist.size() > 1) {
playNextSong(true);
} else {
cleanupPlayer(true, true);
}
}
});
/* audioPlayer.prepare();
audioPlayer.start();*/
audioPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
audioPlayer.prepareAsync();
startProgressTimer();
} catch (Exception e) {
if (audioPlayer != null) {
audioPlayer.release();
audioPlayer = null;
isPaused = false;
MusicPreferance.playingSongDetail = null;
}
return false;
}
Log
09-20 18:56:40.757 7788-7788/com.dmplayer E/MediaPlayer: Attempt to call getDuration without a valid mediaplayer
09-20 18:56:40.757 7788-7788/com.dmplayer E/MediaPlayer: error (-38, 0)
09-20 18:56:40.763 7788-7788/com.dmplayer E/MPlugin: Unsupported class: com.mediatek.common.telephony.IOnlyOwnerSimSupport
09-20 18:56:40.769 7788-7806/com.dmplayer I/System.out: [OkHttp] sendRequest>>
09-20 18:56:40.770 7788-7806/com.dmplayer I/System.out: [OkHttp] sendRequest<<
09-20 18:56:40.827 7788-7788/com.dmplayer E/MediaPlayer: Attempt to call getDuration without a valid mediaplayer
09-20 18:56:40.828 7788-7788/com.dmplayer E/MediaPlayer: error (-38, 0)
09-20 18:56:40.829 7788-7788/com.dmplayer E/MediaPlayer: Attempt to call getDuration without a valid mediaplayer
09-20 18:56:40.830 7788-7788/com.dmplayer E/MediaPlayer: error (-38, 0)
09-20 18:56:40.874 7788-7788/com.dmplayer E/MediaPlayer: Error (-38,0)
09-20 18:56:40.874 7788-7788/com.dmplayer E/MediaPlayer: stop called in state 0
09-20 18:56:40.874 7788-7788/com.dmplayer E/MediaPlayer: error (-38, 0)
09-20 18:56:40.875 7788-7788/com.dmplayer I/System.out: [CDS]close[47061]
09-20 18:56:40.875 7788-7788/com.dmplayer I/NetworkManagementSocketTagger: untagSocket(51)
09-20 18:56:40.897 7788-7788/com.dmplayer W/MediaPlayer: mediaplayer went away with unhandled events
09-20 18:56:40.897 7788-7788/com.dmplayer W/MediaPlayer: mediaplayer went away with unhandled events
09-20 18:56:40.924 7788-7788/com.dmplayer W/MediaPlayer: mediaplayer went away with unhandled events