25 - Reproducción de audio (archivo contenido en una tarjeta SD)

El objetivo de este concepto es acceder a un archivo mp3 almacenado en la tarjeta SD de nuestro equipo (tener en cuenta que esto solo funciona con un equipo que dispone la capacidad de tarjeta SD) Debemos utilizar un emulador que tenga configurado tarjeta SD.

Problema:

Disponer un botón con la etiqueta: "gato", luego cuando se presione reproducir el archivo de audio respectivo. El archivo de sonido almacenarlo en la tarjeta SD.

Luego de crear el proyecto (Proyecto027) debemos ejecutar la aplicación para poder acceder a la tarjeta SD que crea el emulador Android.

Una vez que se este ejecutando la aplicación (no importa que todavía no hemos implementado su funcionalidad) procedemos a abrir la ventana "Device File Explorer". Seleccionamos del menú de opciones de View->Tool Windows->Device File Explorer.

En la carpeta que se muestra en la imagen de abajo debemos subir el archivo mp3 (debemos seleccionar esta carpeta con el mouse y presionar el botón derecho del mouse y seleccionar "Upload")
:

play mp3 android tarjeta SD

Luego de subirlo debe aparecer dentro de la lista de archivos que tiene la tarjeta SD:

play mp3 android tarjeta SD

Ahora implementemos la interfaz de nuestra aplicación (un solo botón) :

play mp3 android tarjeta SD

El código fuente en Kotlin es:

package com.tutorialesprogramacionya.proyecto027

import android.media.MediaPlayer
import android.net.Uri
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)

        val boton1=findViewById<Button>(R.id.boton1)
        boton1.setOnClickListener {
            val datos = Uri.parse(getExternalFilesDir(null).toString() + "/gato.mp3")
            val mp = MediaPlayer.create(this, datos)
            mp.start()
        }
    }
}

Creamos un objeto de la clase Uri llamando al método parse donde indicamos el path y nombre del archivo a recuperar:

            val datos = Uri.parse(getExternalFilesDir(null).toString() + "/gato.mp3")

Creamos el objeto de la clase MediaPlayer pasando ahora la referencia del objeto de la clase Uri:

            val mp = MediaPlayer.create(this, datos)

Iniciamos la reproducción del mp3:

            mp.start()

Este proyecto lo puede descargar en un zip desde este enlace: proyecto027.zip

Recordar que para ejecutar este proyecto se debe subir un archivo mp3 llamado "gato.mp3" a la tarjeta SD.