2

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

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

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

谢谢克里斯

4

2 回答 2

0

定义您的资源 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(new MediaController(this));

videoview.requestFocus();

在使用 PrepareListener 之前

希望对你有帮助

于 2013-10-08T09:46:37.147 回答
0

我有个类似的问题。我有一个 OnPreparedListener 在开始之前执行 seekTo。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();
        }
     });
于 2011-04-21T20:54:53.507 回答