setLooping(true)在jellybean和kitkat中不起作用

时间:2018-04-10 05:26:33

标签: android android-mediaplayer android-videoview

我正在开发一个从URL播放视频的应用程序,以控制视频我还添加了mediacontroller。

我想要无限循环播放视频,所以我将以下代码添加到媒体播放器

`mp.setLooping(true);` 

内部  videoview.setOnPreparedListener方法

setLoop(true)方法不适用于jellybean和kitkat设备。 它适用于Android M及以上版本。 我没有在android L中调试,因为我还没有它的模拟器。

我还浏览了MediaPlayer文档,他们提到在API 1中添加了setLooping(true),但它在android K和J中不起作用

帮我解决上述问题

下面是我的完整代码

public void videoStup(final ProgressBar pb, final VideoView videoview)
    {
        pb.setVisibility(View.VISIBLE);

        try
        {
            MediaController mediacontroller = new MediaController(this);
            mediacontroller.setAnchorView(this.videoview);
            mediacontroller.setBackgroundResource(R.color.white);
            //mediacontroller.setVisibility(View.GONE);

            Uri video = Uri.parse(VideoURL);
            videoview.setMediaController(mediacontroller);
            videoview.setVideoURI(video);
            videoview.seekTo(100);

        } catch (Exception e)
        {
            Log.e(TAG, "error = "+e.getMessage());
            //e.printStackTrace();
        }

        videoview.requestFocus();
        videoview.setOnPreparedListener(new OnPreparedListener() {
            public void onPrepared(MediaPlayer mp) {
                mp.setLooping(true);
                pb.setVisibility(View.GONE);
                videoview.start();
            }
        });
    }

1 个答案:

答案 0 :(得分:0)

我在下面的代码的帮助下解决了我的问题,现在它在Android jellybean& Android Kitkat也

我只需要在视频完成后调用简历方法。

这是我的代码

videoview.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp)
        {

            Log.d(TAG,"onCompletion");
            videoview.resume();

        }
    });