Clase MediaPlayer en Android

MediaPlayer Class en Android se usa para reproducir archivos multimedia. Esos son archivos de audio y video. También se puede usar para reproducir secuencias de audio o video a través de la red. Entonces, en este artículo, las cosas discutidas son:

  • Diagrama de estado de MediaPlayer
  • Creación de un reproductor de audio simple usando la API de MediaPlayer. Echa un vistazo a la siguiente imagen.

Mediaplayer Class in Android

Diagrama de estado de la clase MediaPlayer

  • La reproducción del archivo de audio o video mediante MediaPlayer se realiza mediante una máquina de estado.
  • La siguiente imagen es el diagrama de estado de MediaPlayer.

State Diagram of the MediaPlayer class

  • En el diagrama de estado de MediaPlayer anterior, la forma ovalada representa el estado en el que reside la instancia de MediaPlayer.

  • Hay dos tipos de arcos que se muestran en el diagrama de estado. Uno con una sola punta de flecha representa las llamadas de método síncrono de la instancia de MediaPlayer y uno con la doble punta de flecha representa las llamadas asíncronas.

State Diagram of the MediaPlayer class

  • El método de lanzamiento, que es uno de los elementos importantes en la API de MediaPlayer. Esto ayuda a liberar los recursos de memoria asignados para la instancia de Mediaplayer cuando ya no se necesita. Consulte ¿Cómo borrar o liberar recursos de audio en Android? para saber cómo se puede liberar la memoria asignada por el Mediaplayer. Para que la gestión de la memoria se haga en consecuencia.
  • Si se llama al método stop() usando la instancia de Mediaplayer, entonces debe prepararse para la próxima reproducción.
  • El MediaPlayer se puede mover a la posición de tiempo específica usando el método seekTo() para que la instancia de MediaPlayer pueda continuar reproduciendo el Audio o Video desde esa posición especificada.
  • El enfoque de la reproducción de audio debe administrarse en consecuencia utilizando el servicio AudioManager que se analiza en el artículo ¿Cómo administrar el enfoque de audio en Android? .
  • La siguiente imagen es la versión resumida del diagrama de estado de MediaPlayer.

State Diagram of the MediaPlayer class

Pasos para crear un MediaPlayer simple en Android

Paso 1: crear un proyecto de actividad vacío

Paso 2: Cree una carpeta de recursos sin procesar

  • Cree una carpeta de recursos sin formato en la carpeta res y copie una de las extensiones de archivo .mp3.

Paso 3: trabajar con el archivo activity_main.xml

  • El diseño de la aplicación consta principalmente de tres botones PLAY, PAUSE y STOP, que se utilizan para controlar el estado de la instancia de MediaPlayer.
  • Invoque el siguiente código dentro del archivo activity_main.xml para implementar la interfaz de usuario.

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    tools:ignore="HardcodedText">
 
    <TextView
        android:id="@+id/headingText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="32dp"
        android:text="MEDIA PLAYER"
        android:textSize="18sp"
        android:textStyle="bold" />
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/headingText"
        android:layout_marginTop="16dp"
        android:gravity="center_horizontal">
 
        <Button
            android:id="@+id/stopButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:backgroundTint="@color/colorPrimary"
            android:text="STOP"
            android:textColor="@android:color/white" />
 
        <Button
            android:id="@+id/playButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:backgroundTint="@color/colorPrimary"
            android:text="PLAY"
            android:textColor="@android:color/white" />
 
        <Button
            android:id="@+id/pauseButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:backgroundTint="@color/colorPrimary"
            android:text="PAUSE"
            android:textColor="@android:color/white" />
 
    </LinearLayout>
 
</RelativeLayout>

 Interfaz de usuario de salida: 

Mediaplayer Class in Android

Paso 4: trabajar con el archivo MainActivity.kt 

  • La instancia de MediaPlayer necesita que se configuren los atributos antes de reproducir cualquier archivo de audio o video.
  • Invoque lo siguiente dentro del archivo MainActivity.kt . Se agregan comentarios para una mejor comprensión. 

Kotlin

import android.media.MediaPlayer
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
 
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        // create an instance of mediplayer for audio playback
        val mediaPlayer: MediaPlayer = MediaPlayer.create(applicationContext, R.raw.music)
 
        // register all the buttons using their appropriate IDs
        val bPlay: Button = findViewById(R.id.playButton)
        val bPause: Button = findViewById(R.id.pauseButton)
        val bStop: Button = findViewById(R.id.stopButton)
 
        // handle the start button to
          // start the audio playback
        bPlay.setOnClickListener {
            // start method is used to start
              // playing the audio file
            mediaPlayer.start()
        }
 
        // handle the pause button to put the
        // MediaPlayer instance at the Pause state
        bPause.setOnClickListener {
            // pause() method can be used to
            // pause the mediaplyer instance
            mediaPlayer.pause()
        }
 
        // handle the stop button to stop playing
        // and prepare the mediaplayer instance
        // for the next instance of play
        bStop.setOnClickListener {
            // stop() method is used to completely
            // stop playing the mediaplayer instance
            mediaPlayer.stop()
 
            // after stopping the mediaplayer instance
            // it is again need to be prepared
            // for the next instance of playback
            mediaPlayer.prepare()
        }
    }
}

Salida: ejecutar en el emulador

Publicación traducida automáticamente

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