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()你调用时,这会返回你想要的值.