开源视频播放器IjkPlayer使用记录之(三)--播放视频从上次播放的时间点播放。

时间:2022-02-16 09:01:37

方法:

1.在关闭视频的时候,使用getCurrentPosition()获取当前的时间点。

2.使用SharedPreferences记录当前的时间点。

3.重新播放时,获取该时间点,使用seekto进行播放,相对来说还是比较简单的。

附代码,有需要的可以参考。

 
 public void MediaSavePostion(String inputUrl) {
        if ((sp != null) && (inputUrl != null)) {
            int position = videoView.getCurrentPosition();
            int duration = videoView.getDuration();
            Log.e(TAG,"position="+position+"duration="+duration);
            //2S以内的误差认为已经播放完城
            if ((duration>0) && (duration-position<2000))
            {
               position=0;
            }
            String value = String.valueOf(position);
            editor.putString(inputUrl, value);
            editor.commit();
            Log.e(TAG, "save url=" + inputUrl + "position=" + value);
        }
    }

    public void SetVideoPlay(String inputUrl) {
        if (inputUrl != null) {
            String pos = null;
            int position = 0;
            if (sp != null) {
                pos = sp.getString(inputUrl, "");
                Log.e(TAG, "postion=" + pos);
            }
            if ((pos != null) && (pos.length() > 0)) {
                try {
                    position = Integer.valueOf(pos);
                } catch (Exception e) {
                    position = 0;
                }
            }
            Log.e(TAG, "play url=" + inputUrl + "position=" + position);
            videoView.setVideoURI(Uri.parse(inputUrl));
            if (position != 0) {
                videoView.seekTo(position);
            }
            videoView.start();
        }
    }