Video doesn't loop Android VideoView

南楼画角 提交于 2019-11-27 08:01:33

问题


I am trying to build an android app that will loop a video! The problem is that it never loops! It plays the video only once! During debugging i realized that the "myVideoView.setOnCompletionListener" is being executed but the video doesn't play! I also try "mp.reset()" inside the CompletionListener. Maybe i am missing something in a different file, such as the Manifest?

Any thoughts? Here is my code:

  final VideoView myVideoView = (VideoView)findViewById(R.id.myvideoview);
      myVideoView.setVideoURI(Uri.parse(SrcPath));     

       myVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer arg0) {
                myVideoView.requestFocus();
                myVideoView.start();
           }
        });
       myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer mp) {
                 myVideoView.setVideoURI(Uri.parse(SrcPath));

           }
        });

回答1:


Try onPreparedListener instead of onCompletionListener:

myVideoView.setOnPreparedListener(new OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
        mp.setLooping(true);
    }
});

Hope this helps.




回答2:


Try this.

myVideoView = (VideoView) findViewById(R.id.videoView1);
myVideoView.setVideoPath(video_path); 
myVideoView.setMediaController(new MediaController(this));
myVideoView.start();   

myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

    @Override
    public void onCompletion(MediaPlayer mp) {

        myVideoView.start();  

    }
});

By that after completion of your video start again...




回答3:


Try this.

            videoView.setVideoPath(tempFileMessageUri.toString());

            ctlr = new MediaController(context);
            ctlr.setMediaPlayer(videoView);

            videoView.setMediaController(ctlr);
            videoView.requestFocus();
            videoView.start();

            videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    videoView.start();
                }
            });

            videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                public void onCompletion(MediaPlayer mp) {
                    videoView.start();

                }
            });


来源:https://stackoverflow.com/questions/10246838/video-doesnt-loop-android-videoview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!