3.6.- Clips de audio, secuencias MIDI, clips de vídeo, entre otros Flashcards
Sistema Android. Clase MediaPlayer. Potencia y vertatilidad (3)
En Android, la potencia de la clase MediaPlayer hace que reproducir clips de vídeo o audio en diferentes formatos sea igual. Siempre que el terminal disponga de los códecs para los formatos utilizados, el procedimiento de cargar el MediaPlayer con ellos y reproducirlos no se diferencia.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips (video y audio). Clase MediaPlayer (3)
Es posible elegir entre varios formatos, y que no es necesario cambiar la configuración del objeto MediaPlayer.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips (video y audio). Carpetas res y raw (3)
En el directorio “res/raw” se insertan los clips de audio y vídeo.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips. Interfaz gráfica (1)
En el ConstraintLayout añadir los botones para controlar el audio y el vídeo, y un VideoView para mostrar la secuencia de vídeo.
* TextView para audio (lblAudio): Muestra un texto que probablemente indica la presencia de un clip de audio.
* Botón para reproducir audio (btnPlayAudio): Inicia la reproducción de un clip de audio.
* Botón para detener audio (btnStopAudio): Detiene la reproducción del clip de audio.
* TextView para video (lblVideo): Muestra un texto que probablemente indica la presencia de un clip de video.
* Botón para reproducir video (btnPlayVideo): Inicia la reproducción de un clip de video.
* Botón para detener video (btnStopVideo): Detiene la reproducción del clip de video.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips. Traducciones (1)
El archivo de cadenas para internacionalización se ubica dentro de la ruta res/values/strings. Dentro del elemento <>resources> se crea una colección de elemento <>string> donde el atributo name es la clave y el contenido de la etiqueta es el valor.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips. Controlador. Definición clase (1)
Establece la base para trabajar con reproducción de audio con la clase MediaPlayer y vincula las vistas a través de kotlinx.android.synthetic.
* Importa las clases necesarias para trabajar con multimedia en Android, como MediaPlayer, Uri y MediaController.
* Extiende la clase AppCompatActivity para crear la actividad principal de la aplicación.
* Utiliza el sistema de vinculación de vistas (kotlinx.android.synthetic) para acceder a las vistas del diseño de la actividad.
* La variable mp se declara como private lateinit var.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips. Controlador. Método onCreate() (1)
El método onCreate se encarga de la inicialización de la interfaz de usuario y llama a métodos (initAudio() e initVideo()) para la inicialización y configuración de la reproducción de audio y video, respectivamente.
* Llama al método onCreate() de la superclase (AppCompatActivity) para inicializar la superclase antes de iniciarlizar la actividad actual.
* Establece el contenido de la actividad con el diseño definido en el archivo XML llamado activity_main.
* Llama al método initAudio() que contiene la lógica de inicialización y configuración para reproducir audio en la aplicación.
* Llama al método initVideo() que contiene la lógica de inicialización y configuración para reproducir video en la aplicación.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips. Controlador. Método initAudio() (1)
Inicializa y configura la reproducción de audio, proporcionando funciones para reproducir, pausar y detener la reproducción, junto con un manejo adecuado cuando se completa la reproducción.
* Crea un objeto MediaPlayer y lo inicializa con el archivo de audio que se encuentra en la carpeta res/raw de la aplicación.
* Establece un OnCompletionListener en el MediaPlayer. Este escucha se activa cuando la reproducción del audio se completa. Se llama al método stopAudio() y se muestra un mensaje Toast indicando que la reproducción ha finalizado.
* Configura un OnClickListener para el botón btnPlayAudio. Cuando se hace clic en este botón, se verifica si el MediaPlayer está reproduciendo. Si está reproduciendo, se pausa la reproducción; de lo contrario, se inicia la reproducción.
* Configura un OnClickListener para el botón btnStopAudio. Cuando se hace clic en este botón, se llama a stopAudio(), deteniendo la reproducción del audio.
* Configura el texto del botón btnPlayAudio con el valor de la cadena definida en los recursos con el identifizador “play”.
* Deshabilita el botón btnStopAudio, impidiendo que el usuario lo utilice hasta que se inicie la reproducción de audio.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips. Controlador. Método playAudio() (1)
Inicia la reproducción del audio utilizando el objeto MediaPlayer, actualiza el texto del botón de reproducción para indicar que ahora puede pausar la reproducción y habilita el botón de detención.
* Llama al método start() del objeto MediaPlayer (mp). Inicia la reproducción del audio desde el principio o desde donde se pausó anteriormente.
* Cambia el texto del botón btnPlayAudio al valor de la cadena definida en los recursos con el identificador “pause”.
* Habilita el botón btnStopAudio, permitiendo que el usuario lo utilice mientras la reproducción de audio está en curso.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips. Controlador. Método stopAudio() (1)
Detiene la reproducción del audio, prepara el MediaPlayer para una nueva reproducción desde el principio del archivo, coloca el cursor de reproducción en la posición 0, actualiza el texto del botón de reproducción y deshabilita el botón de detención.
* Detiene la reproducción del audio utilizando el método stop() del objeto MediaPlayer (mp).
* Llama al método prepare() del objeto MediaPlayer. Prepara el MediaPlayer para reproducir nuevamente el mismo archivo de audio. Llama a prepare() después de llamar a stop() para restablecer el estado del MediaPlayer.
* Coloca el cursor de reproducción en la posición 0 del archivo de audio y comezar la reproducción desde el principio del archivo.
* Cambia el texto del botón btnPlayAudio al valor de la cadena definida en los recursos con el identificador “play”. Esto indica visualmente que el botón ahora se puede usar para iniciar la reproducción.
* Deshabilita el botón btnStopAudio, impidiendo que el usuario lo utilice hasta que se inicie la reproducción de audio nuevamente.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips. Controlador. Método pauseAudio() (1)
Pausa la reproducción del audio y actualiza el texto del botón de reproducción para indicar que ahora se puede utilizar para reanudar la reproducción.
* Pausa la reproducción del audio utilizando el método pause() del objeto MediaPlayer (mp). Esto detiene temporalmente la reproducción.
* Cambia el texto del botón btnPlayAudio al valor de la cadena definida en los recursos con el identificador “play”.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips. Controlador. Método initVideo() (1)
Sse encarga de la inicialización y configuración de la reproducción de video en una aplicación Android, proporcionando funciones para reproducir, pausar, reanudar y detener la reproducción, junto con un manejo adecuado cuando se completa la reproducción.
videoView.setOnCompletionListener { … }: Establece un OnCompletionListener en el VideoView. Este escucha se activa cuando la reproducción del video se completa. En este caso, al completarse la reproducción, se llama a stopVideo(), se muestra un mensaje Toast indicando que la reproducción ha finalizado y se realiza alguna acción adicional (que no está presente en el código proporcionado).
* Configura un OnClickListener para el botón btnPlayVideo. Cuando se hace clic en este botón, se utiliza una expresión when para determinar la acción a realizar según el estado actual del VideoView:
1. Si el video está reproduciéndose, se llama a pauseVideo().
2. Si la posición actual del video no es 0 (es decir, el video está pausado), se llama a resumeVideo().
3. En otros casos, se llama a playVideo() para iniciar la reproducción del video.
* Configura un OnClickListener para el botón btnStopVideo. Cuando se hace clic en este botón, se llama a stopVideo(), deteniendo la reproducción del video.
* Configura el texto del botón btnPlayVideo con el valor de la cadena definida en los recursos con el identificador “play”.
* Deshabilita el botón btnStopVideo, impidiendo que el usuario lo utilice hasta que se inicie la reproducción de video.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips. Controlador. Método playVideo() (1)
Inicia la reproducción de un archivo de video en un VideoView, configura un controlador de medios (MediaController), establece el enfoque en el VideoView, y actualiza la interfaz de usuario.
* Se establecen las URI (Uniform Resource Identifier) de los archivos de video en la carpeta res/raw de la aplicación mediante el método setVideoURI(Uri.parse(…)). En este caso, se está seleccionando el archivo de video con la extensión 3GP: “android.resource://$packageName/raw/video_3gp”.
* Se crea un objeto MediaController y se configura como el controlador de medios para el VideoView utilizando setMediaPlayer(videoView).
* Se establece el enfoque en el VideoView mediante el método requestFocus().
* Se inicia la reproducción del video utilizando el método start() del VideoView.
* Se actualiza el texto del botón btnPlayVideo a la cadena definida en los recursos con el identificador “pause”.
* Se habilita el botón btnStopVideo, permitiendo que el usuario lo utilice mientras la reproducción de video está en curso.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips. Controlador. Método resumeVideo() (1)
Reanuda la reproducción de un video en un VideoView que previamente fue pausado. Además, actualiza la interfaz de usuario.
* Llama al método start() del VideoView. Reanuda la reproducción del video desde el punto donde se pausó.
* Actualiza el texto del botón btnPlayVideo a la cadena definida en los recursos con el identificador “pause”.
3.6.1. Clips de audio y vídeo
Aplicación de reproducción de clips. Controlador. Método pauseVideo() (1)
Pausa la reproducción de un video en un VideoView y actualiza la interfaz de usuario.
* Llama al método pause() del VideoView. Esto pausa la reproducción del video en el punto actual.
* Actualiza el texto del botón btnPlayVideo a la cadena definida en los recursos con el identificador “play”.