каждый раз, когда я запускаю свой поток, я получаю две ошибки MediaPlayer.
01-03 12: 04: 35.738: D / PlayerActivity (10164): играть
01-03
12: 04: 35.742: D / PlayerService (10164): setAudiotStreamType
01-03
12: 04: 35.742: D / PlayerService (10164): setDataSource
01-03
12: 04: 35.742: D / PlayerService (10164): prepareAsync
01-03
12: 04: 35.742: E / MediaPlayer (10164): запуск вызывается в состоянии 4
01-03
12: 04: 35.742: E / MediaPlayer (10164): ошибка (-38, 0)
01-03
12: 04: 35.742: D / PlayerService (10164): onPrepared
01-03
12: 04: 35.742: D / PlayerService (10164): onCreate Service
01-03
12: 04: 35.750: E / MediaPlayer (10164): ошибка (-38,0)
01-03
12: 04: 38.261: D / PlayerService (10164): готово
В теге отладки "play" я нажал кнопку воспроизведения.
Чем вызван мой «onCreate» в сервисе MediaPlayer, который выполняет «setAudioStreamTpe», «setDataSource», «prepareAsync» и затем onPrepared (myMediaPlayer).
OnPrepared выполняет только mp.start (). После этого «onPrepared» регистрируется. И затем, в конце «onCreate» из моего сервиса, «onCreate Service» регистрируется.
Почему там 2 наготове ?! С mp.prepare () я не получил ошибок.
Код:
@Override
public void onCreate() {
mp = new MediaPlayer();
mp.setOnPreparedListener(this);
prepareMediaPlayer();
onPrepared(mp);
Log.d(TAG, "onCreate Service");
}
public void prepareMediaPlayer()
{
try {
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
Log.d(TAG, "setAudiotStreamType");
mp.setDataSource(PlayerActivity.soundUrl);
Log.d(TAG, "setDataSource");
mp.prepareAsync();
Log.d(TAG, "prepareAsync");
}
catch (IOException e) {}
catch (IllegalArgumentException e) {}
catch (IllegalStateException e) {}
}
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
if (PlayerService.mp.isPlaying() == true){
notification();
PlayerActivity.mpState = PlayerActivity.PLAYING;
}
Log.d(TAG, "onPrepared");
}