VideoView, добавив кнопку воспроизведения еще раз к видео - PullRequest
0 голосов
/ 26 июня 2018

Я использую здесь 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();
                              }
                    }); 

Я хочу, чтобы, когда я щелкнул по представлению изображения, видео начало воспроизводиться, тогда, если я нажму снова, оно начнется снова с начала.

Ответы [ 3 ]

0 голосов
/ 26 июня 2018

Сохраняя логические значения, вы будете обрабатывать просмотр видео с использованием seekTo () при срабатывании кликов. // играем верно - getCurrent воспроизводит видео с поиском позиции check seekTo (); если (играет) // меняем флаг и устанавливаем значение false & seekTo (0); еще // меняем флаг и устанавливаем значение true seekTo (sum values);

0 голосов
/ 26 июня 2018

я нашел решение, ребята, ты за помощь кто-то по имени Джефф решил это за меня (спасибо Джефф )

Сумма:

поместите этот код в 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);
0 голосов
/ 26 июня 2018

Используйте функцию поиска видео для перезапуска видео

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);
            }
...