首页 > 解决方案 > VideoView,为视频添加再次播放按钮

问题描述

我在这里使用imageView,当我点击它时,它应该在(linear10)中显示一个视频,这个视频大约是 4 秒,我需要一个代码,当我再次点击imageView该视频时,它应该再次开始播放,每次我点击我imageView需要它从头开始播放视频

这是我用来播放视频的代码:

imageview1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                n++;
                linear1.setVisibility(View.VISIBLE);
                if (n == 1) {
                    final VideoView vd = new VideoView(MainActivity.this); vd.setLayoutParams(new LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams.MATCH_PARENT, android.widget.LinearLayout.LayoutParams.MATCH_PARENT)); linear1.addView(vd);
                    vd.setVideoURI(Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.mercury));
                    vd.requestFocus();
                    vd.start();

我尝试添加此代码,但这会循环播放视频!:

vd.setOnCompletionListener(new android.media.MediaPlayer.OnCompletionListener() {
                          @Override
                          public void onCompletion(android.media.MediaPlayer arg0) {
                            vd.start();
                              }
                    }); 

我希望当我单击图像视图时视频开始播放,然后如果我再次单击它将从头开始重新开始。

标签: javaandroidandroid-videoview

解决方案


使用 video view 的 seekTo 函数重启视频

imageview1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            n++;
            linear1.setVisibility(View.VISIBLE);
            if (n == 1) {
                final VideoView vd = new VideoView(MainActivity.this); vd.setLayoutParams(new LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams.MATCH_PARENT, android.widget.LinearLayout.LayoutParams.MATCH_PARENT)); linear1.addView(vd);
                vd.setVideoURI(Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.mercury));
                vd.requestFocus();
                vd.start();
            } else {
                vd.seekTo(0);
            }

推荐阅读