Rainbow0106
Rob-Hoo
采纳率0%
2014-11-20 09:24 浏览 8.6k

Android视频循环播放,开始正常,循环一段时间后停止。

1

最近需要做一个视频的循环播放,用于做一个机器的老化测试功能,路径是本地的一个视频,但是在播放一段时间之后会停止并且出现很抱歉,无法播放此视频的对话框。并不是开始就无法播放,而是开始可以正常播放,并且可以循环播放,但是在循环一段时间之后会出现问题。
我的代码是这样写的:

private void initVideoModule() {
if (logOn) {
Log.e(TAG, "start method mVideoModule.initVideoModule()");
}
topVideoView = (VideoView) findViewById(R.id.video_top);

   }

   @Override
   public void startTest() {
       // TODO Auto-generated method stub
       if (logOn) {
           Log.e(TAG, "start method mVideoModule.startTest()");
       }
       initVideoModule();
       File file = new File("/system/etc/testvideo.mp4");
       if(file.exists()){
           Log.e("rainbow","testvideo is exists");
           topVideoView.setVideoPath(file.getAbsolutePath());

       }else{
           Log.e("rainbow","testvideo is not exists");
       }
       topVideoView.start();

       topVideoView.setOnPreparedListener(new OnPreparedListener() {

           @Override
           public void onPrepared(MediaPlayer mp) {
               // TODO Auto-generated method stub
               mp.setLooping(true);
               mp.setVolume(0.6f, 0.6f);
           }
       });
   }

现在有一个问题就是:app可以正常启动并循环播放视频,但是当循环一段时间之后,就会停止,然后弹出对话框:很抱歉,无法播放此视频 。这个不是刚启动的时候就会出现,而是刚刚启动视频正常播放,并且能循环播放,但是循环一段时间之后出现的问题。
请问这个问题应该是出在了哪里?
还有如果把循环方法这样写:
topVideoView.setOnCompletionListener(new OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer mp) {
            // TODO Auto-generated method stub
                                 topVideoView.start();
            }
        }
    });

而不在setOnPreparedListener里边设定mp.setLooping(true);这个也能达到循环的效果,它们有什么区别?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

6条回答 默认 最新

  • 91program 91program 2014-11-20 09:45

    start(); 前调用一个 reset(); 方法试试。

    点赞 评论 复制链接分享
  • heaimnmn 哎,真难 2014-11-21 05:41

    线程都停止了,怎么重复,,,

    点赞 评论 复制链接分享
  • sniper_bing 蜗牛的信仰 2014-11-26 09:46

    是不是被系统干掉了线程?

    点赞 评论 复制链接分享
  • fmoalm fmoalm 2015-11-30 07:10

    路过水一贴,O(∩_∩)O。

    点赞 评论 复制链接分享
  • u011153817 安静的Sunny 2017-05-22 03:16

    楼主解决没?我现在也掉这个坑了。。。

    点赞 评论 复制链接分享
  • lianjiao511214 lianjiao511214 2018-10-25 02:21

    系统GC导致的错误吧,一般系统GC回收的时候,你的MediaPlayer被强制回收了吧。

    点赞 评论 复制链接分享

相关推荐