我拥有的歌曲都是 MediaPlayer,当我从水平方向变为垂直方向时,反之亦然,歌曲停止,然后从歌曲的开头开始播放。我怀疑当我将布局更改为水平或垂直时会调用 onPause() 方法或其他方法。我该怎么做才能防止歌曲重新开始,并在我从垂直变为水平时保持正常播放,反之亦然?这与我实现这些方法有什么关系吗?
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
music.get(SongPlaying).stop();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
music.get(SongPlaying)).stop();
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
music.get(SongPlaying)).stop();
}
最佳答案
如果您不想自己处理方向,还有另一种方法。在onSaveInstantState()中保存媒体播放器当前位置;
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("currPos", music.get(SongPlaying)).getCurrentPosition());
}
然后有一个变量保存当前位置和onCreate
public void onCreate(Bundle state){
if( state != null ){
playerCurrentPosition = state.getInt("currPos"));
}
//Then when you play your media use seekTo(playerCurrentPosition);
}
关于android - 当我从垂直 View 更改为水平 View 时,为什么我的歌曲会重新开始播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12012831/