我正在为Android设备编写便携式播放器,发现一个有趣的错误:如果连接已更改(例如3G更改为2G或3G更改为WiFi),则播放器进入STATE_IDLE并冻结。在这种情况下,通话暂停而不是播放,将无法正常工作。
@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
switch (playbackState){
case Player.STATE_ENDED:{
setNewState(PlaybackStateCompat.STATE_PAUSED);
break;
}
case Player.STATE_BUFFERING:{
Log.d(TAG, "onPlayerStateChanged: BUFFERING");
mStartTime = System.currentTimeMillis();
break;
}
case Player.STATE_IDLE:{
break;
}
case Player.STATE_READY:{
Log.d(TAG, "onPlayerStateChanged: READY");
Log.d(TAG, "onPlayerStateChanged: TIME ELAPSED: " + (System.currentTimeMillis() - mStartTime));
break;
}
}
}
我想在网络可用时恢复当前正在播放的歌曲。我该如何实现?