我非常喜欢这个网站,因为我能找到许多有用的解决方案对我非常有帮助,特别是我是android编程的初学者,这是我的第一个问题,所以我希望能从这个伟大的社区中找到帮助。
问题: 我在我的应用程序中播放视频,并在用户定位屏幕时以横向全屏播放,因此我想通过使用seekTo()和getCurrentPosition()从同一点开始播放视频 - 但视频播放后几秒钟播放的问题位置我的意思是视频寻找相同的时间点,但是当开始播放时它会增加很多秒。
我的代码:
//initialise everything
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
v = (VideoView) findViewById(R.id.videoView1);
v.setVideoPath(dir + videoName + ".3gp");
v.setMediaController(new MediaController(this));
if (savedInstanceState == null){
v.start();
}
else {
playingTime = savedInstanceState.getInt("restartTime", 0);
v.seekTo(playingTime);
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
if (file.exists()){
playingTime = v.getCurrentPosition();
v.stopPlayback();
outState.putInt("restartTime", playingTime);
}
}
我尝试了很多像这样的解决方案 How to keep playing video while changing to landscape mode android
我正在使用Galaxy Nexus测试我的应用程序..我会感激任何提示。 抱歉我的英语不好,非常感谢。
答案 0 :(得分:5)
在您的活动中,保持一切正常。它归结为在重新创建活动时保存位置。这是一种方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//initialise everything
//finally
if(savedInstanceState!=null) {
int seekValue = savedInstanceState.getInt("where");
//now seekTo(seekValue)
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
int seekValue; //set this to the current position;
outState.putInt("where", seekValue);
super.onSaveInstanceState(outState);
}
}