Guía completa sobre cómo construir un reproductor de video en Android

Este artículo explica el proceso paso a paso para construir un reproductor de video usando Android Studio
Para ver videos en Android, hay una clase especial llamada » MediaPlayer «. En este artículo, tendremos 2 videos que están conectados por el » Cuadro de diálogo «, es decir, aparecerá un cuadro de diálogo después de completar el primer video que le preguntará al usuario si desea reproducir o reproducir el siguiente video.
Para insertar videos en Android, los ponemos en la carpeta raw . La carpeta «sin procesar» está presente en 
 

"app"--> "res" --> "raw"

En esta carpeta, solo necesita pegar los videos que desee reproducir.
Pasos para construir un reproductor de video:
 

  1. Al crear Frontend, solo necesitamos un componente, es decir, VideoView.
  2. Los íconos como reproducir, rebobinar, avanzar solo aparecerán cuando toquemos VideoView y solo aparecerán durante solo 3 segundos y luego desaparecerán. Lo proporciona Google y es su comportamiento predeterminado.
     
  3. Llegando a la parte de back-end, es decir, la codificación de Java, obtenemos controles de medios mediante:

    vw.setMediaController(nuevo MediaController(esto));

  4. Luego, agregue los videos de la carpeta sin procesar en ArrayList y haga una llamada a un método llamado setVideo() dándole un argumento del primer video.

    // las grandes canciones de video no se ejecutan 
    videolist.add(R.raw.faded); 
    videolist.add(R.raw.aeroplane); 
    setVideo(listavideos.get(0));

  5. Ahora, en la definición de setVideo(), necesitamos un objeto Uri para pasar a un método llamado setVideoURI(). Por lo tanto,

    String uriPath = “android.resource://” + getPackageName() +”/” + id ; 
    Uri uri = Uri.parse(uriPath); 
    vw.setVideoURI(uri); 
    vw.start();

    Nota: El primer video comenzará a reproducirse tan pronto como se inicie la aplicación. Esto se debe a que llamamos a setVideo() desde dentro de onCreate() y luego dentro de setVideo(), está llamando a vw.start(), donde vw es VideoView.

  6. Ahora, el código para generar un cuadro de diálogo se realiza dentro del método llamado onCompletion(). Consulte este artículo para saber cómo generar un cuadro de diálogo.

    // Está creando el objeto de AlertDialog 
    AlertDialog.Builder obj = new AlertDialog.Builder(this);

  7. Por último, hemos manejado la codificación de la acción del usuario, es decir, en qué ha hecho clic el usuario (reproducir o siguiente). Se utiliza la lógica simple como incremento y decremento.
    public void onClick(DialogInterface dialog, int which) {
      if (which == -1) {
        vw.seekTo(0);
        vw.start();
      }
      else {
        ++currvideo;
        if (currvideo == videolist.size())
          currvideo = 0;
        setVideo(videolist.get(currvideo));
      }
    }

El código completo (actividad_principal y Actividad principal) para el programa discutido anteriormente se proporciona a continuación:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
   <VideoView
       android:id="@+id/vidvw"
       android:layout_marginTop="10dp"
      android:layout_width="match_parent"
       android:layout_height="match_parent"
       />
</RelativeLayout>

MainActivity.java

package com.example.videoapp_demo;
  
import android.content.DialogInterface;
import android.media.MediaPlayer;
import android.net.Uri;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;
  
import java.util.ArrayList;
  
public class MainActivity
    extends AppCompatActivity
    implements MediaPlayer.OnCompletionListener {
  
    VideoView vw;
    ArrayList<Integer> videolist = new ArrayList<>();
    int currvideo = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        vw = (VideoView)findViewById(R.id.vidvw);
        vw.setMediaController(new MediaController(this));
        vw.setOnCompletionListener(this);
  
        // video name should be in lower case alphabet.
        videolist.add(R.raw.middle);
        videolist.add(R.raw.faded);
        videolist.add(R.raw.aeroplane);
        setVideo(videolist.get(0));
    }
  
    public void setVideo(int id)
    {
        String uriPath
            = "android.resource://"
              + getPackageName() + "/" + id;
        Uri uri = Uri.parse(uriPath);
        vw.setVideoURI(uri);
        vw.start();
    }
  
    public void onCompletion(MediaPlayer mediapalyer)
    {
        AlertDialog.Builder obj = new AlertDialog.Builder(this);
        obj.setTitle("Playback Finished!");
        obj.setIcon(R.mipmap.ic_launcher);
        MyListener m = new MyListener();
        obj.setPositiveButton("Replay", m);
        obj.setNegativeButton("Next", m);
        obj.setMessage("Want to replay or play next video?");
        obj.show();
    }
  
    class MyListener implements DialogInterface.OnClickListener {
        public void onClick(DialogInterface dialog, int which)
        {
            if (which == -1) {
                vw.seekTo(0);
                vw.start();
            }
            else {
                ++currvideo;
                if (currvideo == videolist.size())
                    currvideo = 0;
                setVideo(videolist.get(currvideo));
            }
        }
    }
}

Producción: 
 

  • Reproduciendo el primer video: 
     
    first song "faded"

    primera canción «desvanecida»

  • Cuadro de diálogo después del primer video:
    After completion of first song,dialog box is getting generated

    Después de completar la primera canción, se genera un cuadro de diálogo

  • Reproduciendo el segundo video:
    When we click on "NEXT",then the second video starts running

    Cuando hacemos clic en «SIGUIENTE», el segundo video comienza a ejecutarse

Publicación traducida automáticamente

Artículo escrito por AnshulVaidya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *