在VideoView中从暂停状态播放视频

ric*_*cky 6 android android-videoview

对于自定义视频视图,我必须覆盖MediaController(更改按钮的设计并连接到按钮暂停/播放选择器).情况是这样的:将视频暂停并转动应用程序,然后再次恢复,视频再次开始播放,而不是从它被暂停的点开始播放,因此问题出现了:如何让视频开始播放从哪里停下来的地方?我需要在VideoActivity中更改什么?

public class VideoActivity extends Activity {

VideoView videoView;

VkMediaController mc;

private static final String CURRENT = "duration";

private static final String URL = "url";

private Uri mURI;

private int mCurrentPosition = -1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.video_view_player);
    videoView = (VideoView) findViewById(R.id.videoViewplayer);
    mc = new VkMediaController(this);
    mURI = getIntent().getData();
    if (savedInstanceState != null) {
        mURI = Uri.parse(savedInstanceState.getString(URL));
        mCurrentPosition = savedInstanceState.getInt(CURRENT);

    }
    videoView.setMediaController(mc);
    videoView.setVideoURI(mURI);
    videoView.requestFocus();
}

@Override
protected void onStart() {
    super.onStart();
    videoView.start();
    if (mCurrentPosition != -1) {
        videoView.seekTo(mCurrentPosition);
    }
}

@Override
public void onSaveInstanceState(Bundle outState) {
    outState.putInt(CURRENT, videoView.getCurrentPosition());
    outState.putString(URL, mURI.toString());
    super.onSaveInstanceState(outState);
}
Run Code Online (Sandbox Code Playgroud)

}

小智 18

我认为问题是videoView.getCurrentPosition()当你打电话给内部时总会返回0,那时你onSaveInstanceState(Bundle outState)的视频已经重置了,所以videoView.getCurrentPosition()onPause()你调用时,这会返回你想要的值.