Tutorial de transmisión de video de Android (VideoView)

Tutorial de transmisión de video de Android (VideoView)

En este tutorial, aprenderá cómo transmitir un video remoto usando un MediaController y mostrarlo en un VideoView en su aplicación de Android. MediaController es un controlador para Media Player con funciones como Reproducir/Pausar, Rebobinar, Avance rápido y un control deslizante de progreso. Los videos se pueden cargar desde varias fuentes, como servidores remotos, almacenamiento en la nube y tarjeta SD interna. Crearemos un botón y al hacer clic en el botón comenzará a transmitir un video remoto en una nueva actividad. Vamos a empezar…

Cree un nuevo proyecto en Eclipse  File  >  New  >  Android Application Project. Complete los detalles y nombre su proyecto  VideoStreamTutorial .

Nombre de la aplicación:  VideoStreamTutorial

Nombre del proyecto:  VideoStreamTutorial

Nombre del paquete:  com.androidbegin.videostreamtutorial

Abra su  MainActivity .java  y pegue el siguiente código.

Actividad principal .java

paquete com.androidbegin.videostreamtutorial;

importar android.os.Bundle;
importar android.view.View;
importar android.view.View.OnClickListener;
importar android.widget.Button;
importar android.app.Actividad;
importar android.content.Intent;

clase pública MainActivity extiende Actividad {

	botón botón;

	@Anular
	Vacío protegido onCreate (Paquete de estado de instancia guardado) {
		super.onCreate(estadoDeInstanciaGuardado);
		// Obtenga el diseño de video_main.xml
		setContentView(R.diseño.actividad_principal);

		// Localiza el botón en activity_main.xml
		boton = (Boton) findViewById(R.id.MyButton);

		// Capturar clics de botón
		button.setOnClickListener(nuevo OnClickListener() {
			public void onClick (Ver arg0) {

				// Iniciar NuevaActividad.clase
				Intent myIntent = new Intent(MainActivity.this,
						VideoViewActivity.clase);
				iniciarActividad(miIntento);
			}
		});
	}

}

En esta actividad, hemos creado un botón y al hacer clic en el botón se abrirá una nueva actividad. En este tutorial, hemos alojado un archivo de video en nuestro servidor. https://www.androidbegin.com/tutorial/AndroidCommercial.3gp

NOTA:  Tenga en cuenta que su archivo de video debe ser compatible con Android. Consulte la lista de compatibilidad  aquí .

A continuación, cree un archivo XML para su  diseño gráfico de MainActivity  . Vaya a  res  >  diseño  > Haga clic con el botón derecho en el  diseño  >  Nuevo  >  Archivo XML de Android

Nombre su nuevo archivo XML  activity_main.xml  y pegue el siguiente código.

actividad_principal .xml

<RelativeLayout xmlns_android="http://schemas.android.com/apk/res/android"
    xmlns_herramientas="http://esquemas.android.com/herramientas"
    android_layout_width="fill_parent"
    android_layout_height="fill_parent" >

    <Botón
        android_id="@+id/MiBotón"
        android_layout_width="fill_parent"
        android_layout_height="wrap_content"
        android_layout_centerHorizontal="verdadero"
        android_layout_centerVertical="verdadero"
        android_text="@cadena/botón" />

</RelativeLayout>

A continuación, cree una nueva actividad para transmitir un video remoto. Vaya a  Archivo  >  Nuevo  >  Clase  y asígnele el nombre  VideoViewActivity .java. Seleccione su paquete llamado  com.androidbegin. videostreamtutorial  y haga clic en  Finalizar .

Abra su  VideoViewActivity .java  y pegue el siguiente código.

paquete com.androidbegin.videostreamtutorial;

importar android.media.MediaPlayer;
importar android.media.MediaPlayer.OnPreparedListener;
importar android.net.Uri;
importar android.os.Bundle;
importar android.app.Actividad;
importar android.app.ProgressDialog;
importar android.util.Log;
importar android.widget.MediaController;
importar android.widget.VideoView;

clase pública VideoViewActivity extiende Actividad {

	// Declarar variables
	ProgressDialog pDialog;
	VideoView vista de video;

	// Inserta la URL de tu video
	String VideoURL = "https://www.androidbegin.com/tutorial/AndroidCommercial.3gp";

	@Anular
	Vacío protegido onCreate (Paquete de estado de instancia guardado) {
		super.onCreate(estadoDeInstanciaGuardado);
		// Obtenga el diseño de video_main.xml
		setContentView(R.layout.videoview_main);
		// Encuentra tu VideoView en tu diseño video_main.xml
		videoview = (VideoView) findViewById(R.id.VideoView);
		// Ejecutar StreamVideo AsyncTask

		// Crear una barra de progreso
		pDialog = nuevo ProgressDialog(VideoViewActivity.this);
		// Establecer el título de la barra de progreso
		pDialog.setTitle("Tutorial de transmisión de video de Android");
		// Establecer el mensaje de la barra de progreso
		pDialog.setMessage("Almacenamiento en búfer...");
		pDialog.setIndeterminate(falso);
		pDialog.setCancelable(falso);
		// Mostrar barra de progreso
		pDialog.mostrar();

		intentar {
			// Inicie el MediaController
			MediaController mediacontroller = new MediaController(
					VideoViewActivity.this);
			mediacontroller.setAnchorView(vista de video);
			// Obtener la URL de String VideoURL
			Uri video = Uri.parse(VideoURL);
			videoview.setMediaController(controlador de medios);
			videoview.setVideoURI(video);

		} captura (Excepción e) {
			Log.e("Error", e.getMessage());
			e.printStackTrace();
		}

		videoview.requestFocus();
		videoview.setOnPreparedListener(nuevo OnPreparedListener() {
			// Cierra la barra de progreso y reproduce el video
			public void onPrepared(MediaPlayer mp) {
				pDialog.descartar();
				videoview.start();
			}
		});

	}

}

En esta actividad, mostraremos una barra de progreso hasta que el video se haya cargado parcialmente y luego reproduciremos el video en un VideoView. Hemos implementado un MediaController para permitir a los usuarios Reproducir/Pausar, Rebobinar, Avance rápido y un control deslizante de progreso para controlar el video.

A continuación, cree un archivo XML para su diseño gráfico VideoViewActivity  . Vaya a  res  >  diseño  > Haga clic con el botón derecho en el  diseño  >  Nuevo  >  Archivo XML de Android

Nombre su nuevo archivo XML videoview_main .xml y pegue el siguiente código.  

videoview_principal .xml

<RelativeLayout xmlns_android="http://schemas.android.com/apk/res/android"
    xmlns_herramientas="http://esquemas.android.com/herramientas"
    android_layout_width="fill_parent"
    android_layout_height="fill_parent" >

    <VideoView
        android_id="@+id/VideoView"
        android_layout_width="match_parent"
        android_layout_height="match_parent"
        android_layout_centerHorizontal="verdadero"
        android_layout_centerVertical="verdadero" />

</RelativeLayout>

A continuación, cambie el nombre y los textos de la aplicación. Abra su  strings.xml  en su carpeta  res > valores  y pegue el siguiente código.
cadenas.xml

<recursos>

    <string name="app_name">Tutorial de transmisión de video</string>
    <string name="hello_world">¡Hola mundo!</string>
    <string name="menu_settings">Configuración</string>
    <string name="button">Transmitir video</string>

</recursos>

En su  AndroidManifest.xml , debemos declarar una actividad y permisos para permitir que la aplicación acceda a Internet. Abra su  AndroidManifest.xml  y pegue el siguiente código.

AndroidManifest.xml

<manifiesto xmlns_android="http://schemas.android.com/apk/res/android"
    paquete="com.androidbegin.videostreamtutorial"
    android_versionCode="1"
    android_versionName="1.0" >

    <usos-sdk
        android_minSdkVersion="8"
        android_targetSdkVersion="15" />

    <usos-permiso android_name="android.permiso.INTERNET" >
    </usos-permiso>

    <aplicación
        android_icono="@dibujable/ic_launcher"
        android_etiqueta="@cadena/nombre_aplicación"
        android_tema="@estilo/AppTheme" >
        <actividad android_name=".MainActivity" >
            <intent-filter>
                <acción android_name="android.intent.action.MAIN" />

                <categoría android_name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </actividad>
        <actividad android_name=".VideoViewActivity" />

    </aplicación>

</manifiesto>

Producción:

VideoStreamTutorial Capturas de pantalla

Código fuente 

[purchase_link id=”7890″ text=”Comprar para descargar el código fuente” style=”button” color=”green”]