Android VideoView无法播放顺序视频

前端之家收集整理的这篇文章主要介绍了Android VideoView无法播放顺序视频前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我想连续播放2个视频.第一个视频总是播放得很好.完成后,您可以在日志中看到它设置新的视频URL,但SurfaceView会抛出错误,VideoView会冻结第一个视频的最后一帧.没有其他事情发生.
有什么想法吗 ?谢谢 !

LE:令人惊讶的是,OnPreparedListener被调用第二个视频.

LE2:有时候第二个视频播放得很好,有时它不会…而且我没有在它工作和不工作之间改变一行代码.这纯粹是随机的……

LE3:快速解决方案是在设置新视频网址之前添加此行:

  1. mVideoView.setVisibility(View.GONE);

OnCompletionListener中的代码

  1. setCurrentPlaybackUrl(); // sets mCurrentMediaUrl to the second video URL
  2. mVideoView.setVideoPath(mCurrentMediaUrl);
  3. mVideoView.start();

这是第一个视频完成播放时的日志输出

  1. 10-22 12:32:35.762: I/AwesomePlayer(126): setDataSource_l('https://xx/TestingVideo_lo.mp4')
  2. 10-22 12:32:35.762: E/BufferQueue(123): [SurfaceView] connect: already connected (cur=3,req=3)
  3. 10-22 12:32:35.762: E/MediaPlayerService(126): setVideoSurfaceTexture Failed: -22
  4. 10-22 12:32:35.762: E/BufferQueue(123): [SurfaceView] connect: already connected (cur=3,req=3)
  5. 10-22 12:32:35.762: E/MediaPlayerService(126): setVideoSurfaceTexture Failed: -22
最佳答案
试试onCompletion(MediaPlayer mp),添加mp.stop(),然后做你的东西.

编辑:我试过这个,它的工作原理:

  1. videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
  2. @Override
  3. public void onCompletion(MediaPlayer mp) {
  4. play_video();
  5. }
  6. });
  7. play_video();

其中play_video是以下方法

  1. void play_video() {
  2. Uri uri = Uri.parse(video_link);
  3. videoView.setVideoURI(uri);
  4. videoView.requestFocus();
  5. videoView.setVisibility(View.VISIBLE);
  6. videoView.start();
  7. }

唯一的区别是我播放了两次相同的视频,而不是两个不同的视频.

猜你在找的Android相关文章