每次我开始我的流,我得到两个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):onPrepared
在Debug标签“play”中,我点击了播放按钮。比调用MediaPlayer服务中的“onCreate”,执行“setAudioStreamTpe”,“setDataSource”,“prepareAsync”,然后执行onPrepared(myMediaPlayer)。 OnPrepared只执行mp.start()。之后记录“onPrepared”。然后,在我的服务“onCreate”结束时,会记录“onCreate Service”。
为什么有2个onPrepared?!使用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");
}
你不应该在onPrepared(mp);
中调用onCreate()
,一旦MediaPlayer准备好就会调用它。
public void onCreate() {
mp = new MediaPlayer();
mp.setOnPreparedListener(this);
prepareMediaPlayer();
Log.d(TAG, "onCreate Service");
}
国家4意味着Mediaplayer
正在准备状态
我们称之为其他行为
Mediaplayer.start()
Mediaplayer.stop()
Mediaplayer.pause()
或任何其他的东西。
根据你的代码,它是Onprepared();
你可以在打电话后看到
Mediaplayer.prepare()
要么
Mediaplayer.prepareAsync()
你不需要打电话
Mediaplayer.Onprepared()
一旦MediaPlayer准备就绪,它将调用onPrepares
onPrepared(mp);
后
prepareMediaPlayer();
你会很高兴