VideoView en Kotlin

La clase VideoView de Kotlin se usa para mostrar archivos de video en la aplicación de Android . Esta clase admite los formatos de video 3gp y MP4 . La clase VideoView es capaz de reproducir un archivo de video desde el almacenamiento local, una URL específica o desde un archivo de recursos. El inconveniente de esta clase es que no retiene el estado completo del archivo de video si la aplicación pasa a segundo plano, lo que significa que la posición de reproducción actual, el estado de reproducción o cualquier tipo de pista de subtítulos no se puede restaurar.
 

La jerarquía de clases de la clase VideoView en Kotlin

Diagram of Class hierarchy of VideoView class in Kotlin

Atributos XML del widget VideoView

atributo XML Descripción
Android: identificación Úselo para identificar de forma única un VideoView
Android: diseño_ancho Para establecer el ancho de VideoView
android:layout_height Para establecer la altura de VideoView
Android: diseño_margen Para corregir el margen desde arriba, abajo, al principio y al final
aplicación: diseño_restricción Para fijar la posición en una actividad

Ejemplo

Este ejemplo muestra los pasos necesarios para agregar un archivo de video en una actividad de Android desde el almacenamiento local. También se agrega un controlador de medios a la actividad para controlar la reproducción y pausar la posición del video.
 

Nota: Los siguientes pasos se realizan en Android Studio versión 4.0

Crear nuevo proyecto

  1. Haga clic en Archivo, luego en Nuevo => Nuevo proyecto.
  2. Seleccione el idioma como Kotlin.
  3. Seleccione el SDK mínimo según su necesidad.

Agregue VideoView en el archivo activity_main.xml

A continuación se muestra el código del archivo activity_main.xml para agregar un TextView y un VideoView en una actividad. 
 

xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    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"
    android:background="#168BC34A"
    tools:context=".MainActivity">
 
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="@font/roboto"
        android:isScrollContainer="false"
        android:text="@string/heading_of_activity"
        android:textAlignment="center"
        android:textColor="#1FBC26"
        android:textSize="30sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.01999998" />
 
    <VideoView
        android:id="@+id/simpleVideoView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="10dp"
        android:layout_marginBottom="10dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />
 
</androidx.constraintlayout.widget.ConstraintLayout>

Abra el archivo MainActivity.kt

A continuación se muestra el código del archivo MainActivity.kt para acceder al widget VideoView en el archivo Kotlin y agregarle un controlador de medios.
 

Nota: asegúrese de crear un directorio llamado raw en el archivo de recursos de su proyecto y agregue el archivo de video en ese directorio usando el explorador de archivos.

Java

package com.example.videoviewinkotlin
 
import android.net.Uri
import android.os.Bundle
import android.view.View
import android.widget.MediaController
import android.widget.Toast
import android.widget.VideoView
import androidx.appcompat.app.AppCompatActivity
 
 
class MainActivity :  AppCompatActivity() {
 
    // declaring a null variable for VideoView
    var simpleVideoView: VideoView? = null
 
    // declaring a null variable for MediaController
    var mediaControls: MediaController? = null
 
    override fun onCreate(savedInstanceState: Bundle?){
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        // assigning id of VideoView from
        // activity_main.xml layout file
        simpleVideoView = findViewById<View>(R.id.simpleVideoView) as VideoView
 
        if (mediaControls == null) {
            // creating an object of media controller class
            mediaControls = MediaController(this)
 
            // set the anchor view for the video view
            mediaControls!!.setAnchorView(this.simpleVideoView)
        }
 
        // set the media controller for video view
        simpleVideoView!!.setMediaController(mediaControls)
 
        // set the absolute path of the video file which is going to be played
        simpleVideoView!!.setVideoURI(Uri.parse("android.resource://"
                                       + packageName + "/" + R.raw.gfgvideo))
 
        simpleVideoView!!.requestFocus()
 
        // starting the video
        simpleVideoView!!.start()
 
        // display a toast message
        // after the video is completed
        simpleVideoView!!.setOnCompletionListener {
            Toast.makeText(applicationContext, "Video completed",
                Toast.LENGTH_LONG).show()
        }
 
        // display a toast message if any
        // error occurs while playing the video
        simpleVideoView!!.setOnErrorListener { mp, what, extra ->
            Toast.makeText(applicationContext, "An Error Occurred " +
                    "While Playing Video !!!", Toast.LENGTH_LONG).show()
            false
        }
    }
}

Modificar el archivo strings.xml

Todas las strings que se utilizan en la actividad se enumeran en este archivo.
 

Java

<resources>
    <string name="app_name">VideoView in Kotlin</string>
    <string name="heading_of_activity">Running a video file in an activity</string>
</resources>

Abra el archivo AndroidManifest.xml

A continuación se muestra el código para el archivo AndroidManifest.xml
 

Java

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http:// schemas.android.com/apk/res/android"
    package="com.example.videoviewinkotlin">
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <meta-data
            android:name="preloaded_fonts"
            android:resource="@array/preloaded_fonts" />
    </application>
 
</manifest>

Ejecutar como emulador

Publicación traducida automáticamente

Artículo escrito por RISHU_MISHRA 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 *