视频在屏幕旋转时重新开始播放

6
我写了一段代码来播放我网站上的视频。它能够正常工作,但是当我旋转我的手机时,视频会从头开始重新播放。如何解决这个问题?
public class ActivityVideoDetail extends Activity {

    private VideoDetail videoDetail;
    private TextView    txtResult;
    // -------------------------
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_activity_video_detail);
        if (savedInstanceState != null)
        {

        }
        else {
            ini();
        }
    }


    // -------------------------
    private void ini() {
        videoDetail = (VideoDetail) getIntent().getExtras().getSerializable(VideoDetail.VIDEO_DETAIL);
        txtResult = (TextView) findViewById(R.id.txtResult);
        txtResult.setText(videoDetail.getVideoTitle());

        Uri uri = Uri.parse(videoDetail.getVideoPath());
        //   Uri uri = Uri.parse("http://daily3gp.com/vids/747.3gp");

        VideoView videoView = (VideoView) findViewById(R.id.videoPlayer);

        MediaController mediaController = new MediaController(this);
        mediaController.setAnchorView(videoView);
        mediaController.setMediaPlayer(videoView);

        videoView.setMediaController(mediaController);
        videoView.setVideoURI(uri);
        videoView.start();
    }
}

这个问题的原因是当屏幕方向改变时,它会自动刷新您的代码,也就是调用 onCreate 方法,这就是为什么您的代码出现这种情况的原因。请查看我的答案,希望能解决您的问题。 - Android is everything for me
3个回答

11

你只需要打开 AndroidManifest.xml 文件,然后在你的活动标签内或外输入如下代码:

android:configChanges="orientation|screenSize"

因此,您将会得到类似于以下这样的内容:

<activity android:name="ActivityMenu"
android:configChanges="orientation|screenSize">
</activity>

希望对你有用。

通常有三种方法可以实现这一点:

正如一些答案所建议的那样,您可以区分您的活动是第一次创建还是从savedInstanceState中恢复。这可以通过覆盖onSaveInstanceState并检查onCreate的参数来完成。

您可以通过在清单中添加android:screenOrientation="portrait" (或 "landscape")来锁定活动为一个方向。

您可以通过指定 android:configChanges="screenOrientation" 通知系统您打算自行处理屏幕更改。这样,活动将不会被重新创建,而是会收到回调(您可以忽略它,因为它对您没有用)。


0
在你的清单文件中,在<activity>标签内添加

android:configChanges="orientation|screenSize|keyboardHidden"


0

当你旋转屏幕时,onCreate方法会再次被调用。

http://i.stack.imgur.com/z8GHs.png

将此标志添加到您的清单中。
android:configChanges="orientation"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接