VideoView,为视频添加再次播放按钮

VideoView, adding a play again button to the video

我在这里使用 imageView,当我点击它时应该会显示一个(线性 10)视频,这个视频大约 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();
                              }
                    }); 

我希望当我点击 imageview 时视频开始播放,然后如果我再次点击它会从头开始。

使用视频视图的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);
            }

保留布尔值,您将在点击触发时使用 seekTo() 处理视频视图。 // playing true - getCurrent seekposition 视频正在播放检查 seekTo(); 如果(演奏) //更改标志并设置为 false & seekTo(0); 别的 // 更改标志并设置为真 seekTo(sum values);

我找到了解决方案,伙计们,请帮忙 有人叫 jeff 已经帮我解决了(感谢 Jeff

解决方案:

将此代码放在 onCreate 下:

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));
}
private VideoView vd;
public void nothing() {

以及 imageview1 onclicklistener 下的这段代码:

vd.requestFocus();
vd.start();
vd.seekTo(0);