VideoView dinámico en Kotlin

En Android , VideoView se usa para cargar archivos de video. Podemos confiar en cualquiera de los recursos externos, las URL o los datos locales para obtener el contenido del video. En este artículo, discutiremos cómo crear un VideoView en Kotlin dinámicamente.

Nota: si usamos la vista de video en segundo plano o simplemente regresamos de una sesión de video actual, la posición del video anterior no se guarda, es decir, el estado anterior donde dejamos el video por última vez no se guarda. Para lograrlo, necesitamos hacer uso de algunas bases de datos externas para almacenar los estados.

La clase de vista de video proporciona los siguientes métodos para facilitar todo el procedimiento:

MÉTODO DESCRIPCIÓN
inicio vacío público() Se utiliza para iniciar VideoView
pausa de vacío público() Pausa el video
currículum vacío público() reanuda el video
parada de reproducción vacía pública() Detiene el video
público vacío setVideoURI (Uri uri) Se utiliza para establecer la ruta del archivo de vídeo al que se debe acceder. Puede ser una url o una ruta local
búsqueda de vacío público (int milisegundos) Salta a un intervalo de tiempo específico
public void setMediaController (controlador de MediaController) Esto se usa para configurar los controladores de VideoView (reproducir, pausar, avanzar rápidamente como los botones que ve a lo largo del video)
getDuration public void() Se utiliza para obtener la duración total del video.
vacío público getCurrentPosition() Se utiliza para obtener el intervalo de tiempo actual o la posición del video.
public void está jugando() Devuelve un valor booleano de acuerdo a si el video se está reproduciendo o no.
público vacío setOnPreparedListener(MediaPlayer.OnPreparedListener) Es un oyente que actúa cuando el video está listo para comenzar.
público vacío setOnErrorListener(MediaPlayer.OnErrorListener) Es un oyente que actúa cuando ocurre un error durante la reproducción del video.
público vacío setOnCompletionListener(MediaPlayer.OnCompletionListener) Es un oyente que actúa cuando se completa el video.
public void setAnchorView (Ver vista) Establece la posición de los controles del controlador de medios en la pantalla

Crear un nuevo proyecto en Android Studio

Para crear un nuevo proyecto en Android Studio, siga estos pasos:

  1. Haga clic en Archivo, luego en Nuevo y luego en Nuevo proyecto y asigne el nombre que desee.
  2. Elija «Actividad vacía» para la plantilla del proyecto.
  3. Luego, seleccione Compatibilidad con el idioma Kotlin y haga clic en el botón siguiente.
  4. Seleccione SDK mínimo, lo que necesite

Así es como debería verse el directorio de su proyecto:directorio-de-proyecto-de-android

Modificar archivo activity_main.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:id="@+id/layout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">
</LinearLayout>

Añadir video

Ahora, necesitamos agregar el video. Para ello, tenemos dos opciones:

  1. Podemos tener un archivo de video almacenado localmente en nuestro sistema: Crea una carpeta llamada “ Raw ” en la carpeta res. Agregue el archivo de video y use el siguiente fragmento de código.
// val path = "android.resource://" + packageName + "/" + R.raw.your_videoFile_name
// videoView.setVideoURI(Uri.parse(path)) 
  1. Podemos utilizar el archivo de vídeo desde cualquier recurso web:
// Uri uri = Uri.parse("your_custom_URL");
// videoView.setVideoURI(uri) 

Crear VideoView en el archivo MainActivity.kt

Inserte el siguiente código en su MainActivity.kt

Java

package gfg.apps.videoview
 
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.ViewGroup
import android.widget.*
 
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        // creating a VideoView
        val videoView = VideoView(this)
 
        // setting height and width of the VideoView in our linear layout
        val layoutParams = LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
        layoutParams.setMargins(10, 10, 10, 10)
        videoView.layoutParams = layoutParams
 
        // accessing the media controller
        val mediaController = MediaController(this)
        mediaController.setAnchorView(videoView)
        videoView.setMediaController(mediaController)
 
        // setting the video access path
        val path = "android.resource://" + packageName + "/" + R.raw.gfg
        videoView.setVideoURI(Uri.parse(path))
 
        val linearLayout = findViewById<LinearLayout>(R.id.layout)
        // Add VideoView to LinearLayout
        linearLayout?.addView(videoView)
    }
}

Archivo AndroidManifest.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="gfg.apps.videoview">
 
    <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>
    </application>
 
</manifest>

Ejecutar en emulador

Publicación traducida automáticamente

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