Android:使用VideoView保存实例状态

Android:使用VideoView保存实例状态,android,Android,我正在尝试播放sd卡中的视频,我想在任何动作发生后(如接听电话)恢复视频 那我该怎么办?? 我执行此代码,但无法保存视频的当前路径 我无法保存路径 包net.ovtraining.firsttask import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.media.MediaPlayer;

我正在尝试播放sd卡中的视频,我想在任何动作发生后(如接听电话)恢复视频 那我该怎么办?? 我执行此代码,但无法保存视频的当前路径

我无法保存路径 包net.ovtraining.firsttask

        import java.util.ArrayList;
        import java.util.List;

        import android.app.Activity;
        import android.media.MediaPlayer;
        import android.media.MediaPlayer.OnCompletionListener;
        import android.os.Bundle;
        import android.os.Environment;
        import android.util.Log;
        import android.widget.MediaController;
        import android.widget.VideoView;

        public class PlayVideo extends Activity {

            private VideoView video_view;
            private String[] fileName = {
                    "google1.webm", "google2.webm", "google3.webm",
                    "google4.webm", "google5.webm", "google6.webm"};
            private List<String> paths;

            private int mCurrentPosition = -1;
            int mCurrentPath;

            private int count = 0;

            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                video_view = (VideoView) findViewById(R.id.videoView1);

                String baseDir = Environment.getExternalStoragePublicDirectory("videos").getAbsolutePath()+"/";
                paths = new ArrayList<String>();
                for (int i = 0; i < fileName.length; i++) {
                    paths.add(baseDir + fileName[i]);
                }

                Log.i("path", baseDir);

                if(savedInstanceState != null) {
                    mCurrentPosition = savedInstanceState.getInt(Constants.CURRENT_POSITION);
                }

                MediaController mediaController = new MediaController(this);
                mediaController.setAnchorView(video_view);
                video_view.setMediaController(mediaController);
            }

            @Override
            protected void onStart() {
                play();
                video_view.setOnCompletionListener(new OnCompletionListener() {

                    @Override
                    public void onCompletion(MediaPlayer mp) {
                        play();
                    }
                });
                super.onStart();
            }

            public void play() {
                if(count < paths.size()) {
                    video_view.stopPlayback();
                    video_view.setVideoPath(paths.get(count));
                    Log.i("TAG", paths.get(count));
                    video_view.requestFocus();
                    video_view.start();
                    if (mCurrentPosition != -1) {
                        video_view.seekTo(mCurrentPosition);
                    }
                    count++;
                }
            }

            @Override
            protected void onPause() {
                mCurrentPosition = video_view.getCurrentPosition();
                super.onPause();
            }

            @Override
            protected void onSaveInstanceState(Bundle outState) {
                outState.putInt(Constants.CURRENT_PATH, mCurrentPath);
                outState.putInt(Constants.CURRENT_POSITION, mCurrentPosition);
                super.onSaveInstanceState(outState);
            }

        }
import java.util.ArrayList;
导入java.util.List;
导入android.app.Activity;
导入android.media.MediaPlayer;
导入android.media.MediaPlayer.OnCompletionListener;
导入android.os.Bundle;
导入android.os.Environment;
导入android.util.Log;
导入android.widget.MediaController;
导入android.widget.VideoView;
公共课播放视频扩展活动{
私人视频视图视频视图;
私有字符串[]文件名={
“谷歌1.webm”、“谷歌2.webm”、“谷歌3.webm”,
“谷歌4.webm”、“谷歌5.webm”、“谷歌6.webm”};
私有列表路径;
private int mCurrentPosition=-1;
int mCurrentPath;
私有整数计数=0;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
视频视图=(视频视图)findViewById(R.id.videoView1);
String baseDir=Environment.getExternalStoragePublicDirectory(“视频”).getAbsolutePath()+“/”;
路径=新的ArrayList();
对于(int i=0;i
您找到解决方案了吗?我正在调查。有人建议我使用
片段
保持器来保存我的视频
Uri
文件的实例,但到目前为止还无法让它工作。是的,解决方案是像这样重写Activity onRestart()方法@重写受保护的void onRestart(){count--;play();super.onRestart();}。希望这有帮助