Android VideoView恢复和搜索

Android VideoView恢复和搜索,android,resume,seek,android-videoview,Android,Resume,Seek,Android Videoview,我正在应用程序中使用VideoView播放视频。只要点击一个按钮,它就会记录下视频的当前位置,应用程序就会打开带有某个url的浏览器。按下后退按钮,应用程序返回视频应用程序,并从停止的位置恢复视频 我查看了Android活动生命周期,发现一旦视频活动出现在前台,就会调用onStart()方法。因此,我在onStart()中创建布局,并通过寻找当前位置来播放视频 我的问题是,当视频恢复时,它会从一开始就缓冲,然后寻求恢复。既然它第一次已经缓冲了,有没有办法在执行seekTo时再次消除缓冲 谢谢 克

我正在应用程序中使用VideoView播放视频。只要点击一个按钮,它就会记录下视频的当前位置,应用程序就会打开带有某个url的浏览器。按下后退按钮,应用程序返回视频应用程序,并从停止的位置恢复视频

我查看了Android活动生命周期,发现一旦视频活动出现在前台,就会调用onStart()方法。因此,我在onStart()中创建布局,并通过寻找当前位置来播放视频

我的问题是,当视频恢复时,它会从一开始就缓冲,然后寻求恢复。既然它第一次已经缓冲了,有没有办法在执行seekTo时再次消除缓冲

谢谢
克里斯

我也有类似的问题。我有一个OnPreparedListener,它在开始之前搜索。seekTo可以正常工作,只是视频一开始就出现了音频故障,好像它开始播放,然后开始搜索。我不知道我的代码是否有助于解决所描述的缓冲问题,但它可能有助于阐明这一点

  mVideoView.setVisibility(View.VISIBLE);
  //get current window information, and set format, set it up differently, if you need some special effects
  getWindow().setFormat(PixelFormat.TRANSLUCENT);
  //mVideoView.setVideoURI(Uri.parse(path));
  mVideoView.setVideoPath(path);
  //get focus, before playing the video.
  mVideoView.requestFocus();
  mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
           public void onPrepared(MediaPlayer mp) {                         
           mVideoView.seekTo(mImageSeek);
           mVideoView.start();
        }
     });

我也有类似的问题。我有一个OnPreparedListener,它在开始之前搜索。seekTo可以正常工作,只是视频一开始就出现了音频故障,好像它开始播放,然后开始搜索。我不知道我的代码是否有助于解决所描述的缓冲问题,但它可能有助于阐明这一点

  mVideoView.setVisibility(View.VISIBLE);
  //get current window information, and set format, set it up differently, if you need some special effects
  getWindow().setFormat(PixelFormat.TRANSLUCENT);
  //mVideoView.setVideoURI(Uri.parse(path));
  mVideoView.setVideoPath(path);
  //get focus, before playing the video.
  mVideoView.requestFocus();
  mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
           public void onPrepared(MediaPlayer mp) {                         
           mVideoView.seekTo(mImageSeek);
           mVideoView.start();
        }
     });

定义资源videoview,然后使用此代码

videoview = (VideoView) findViewById(R.id.videoview_play);
videoview.setVideoPath(dir + videoName);
//get focus, before playing the video.
videoview.setMediaController(new MediaController(this));
videoview.requestFocus();
videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                                       public void onPrepared(MediaPlayer mp){                         
                                         videoview.seekTo(5000);
                                         videoview.start();
                                       }
                                });
您必须添加
.setMediaController(新的MediaController(此))

在使用PrepareListener之前


希望它能帮助您定义资源videoview,然后使用此代码

videoview = (VideoView) findViewById(R.id.videoview_play);
videoview.setVideoPath(dir + videoName);
//get focus, before playing the video.
videoview.setMediaController(new MediaController(this));
videoview.requestFocus();
videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                                       public void onPrepared(MediaPlayer mp){                         
                                         videoview.seekTo(5000);
                                         videoview.start();
                                       }
                                });
您必须添加
.setMediaController(新的MediaController(此))

在使用PrepareListener之前


希望它能帮助你

看看我在中的建议。看看我在中的建议。