Reproducir audio desde URL en Android usando Kotlin

Muchas aplicaciones quieren agregar diferentes tipos de archivos de audio a sus aplicaciones de Android. Estos archivos de audio se reproducen mediante un reproductor multimedia dentro de la aplicación de Android. Podemos reproducir archivos de audio dentro de la aplicación de Android desde diferentes fuentes reproduciendo audio desde una URL web o simplemente agregando un archivo de audio dentro de nuestra aplicación de Android. En este artículo, veremos cómo reproducir audio desde una URL en una aplicación de Android en Kotlin. 

Nota : si está buscando reproducir audio desde una URL en su aplicación de Android usando Java. Consulte el siguiente artículo: Cómo reproducir audio desde una URL en una aplicación de Android usando Java

Implementación paso a paso

Paso 1: crea un nuevo proyecto en Android Studio

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.

Paso 2: trabajar con el archivo activity_main.xml

Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml . Se agregan comentarios dentro del código para comprender el código con más detalle.

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:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
 
    <!--on below line we are creating
        a text for heading of our app-->
    <TextView
        android:id="@+id/idTVExtracter"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:gravity="center"
        android:padding="4dp"
        android:text="Play Audio from URL"
        android:textAlignment="center"
        android:textColor="@color/purple_200"
        android:textSize="18sp"
        android:textStyle="bold" />
 
 
    <!--on below line we are creating an
         image button for playing our audio-->
    <ImageButton
        android:id="@+id/idIBPlay"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_centerInParent="true"
        android:background="@android:color/transparent"
        android:src="@drawable/ic_play"
        android:tint="@color/black" />
 
    <!--on below line we are creating image
         button for pausing our audio-->
    <ImageButton
        android:id="@+id/idIBPause"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_below="@id/idIBPlay"
        android:layout_centerHorizontal="true"
        android:background="@android:color/transparent"
        android:src="@drawable/ic_pause"
        android:tint="@color/black" />
 
</RelativeLayout>

Paso 3: agregar permisos al archivo AndroidManifest.xml

Como estamos reproduciendo audio desde la URL en Android. Así que tendremos que añadir permisos de Internet para cargar la URL. Agregue los siguientes permisos al archivo AndroidManifest.xml.

XML

<!-- Permissions of internet -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Paso 4: trabajar con el archivo MainActivity.kt

Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.kt . Se agregan comentarios dentro del código para comprender el código con más detalle.

Kotlin

package com.gtappdevelopers.kotlingfgproject
 
import android.media.AudioManager
import android.media.MediaPlayer
import android.os.Bundle
import android.widget.ImageButton
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
 
class MainActivity : AppCompatActivity() {
 
    // on below line we are creating
    // variable for both of our image buttons.
    lateinit var playIB: ImageButton
    lateinit var pauseIB: ImageButton
    lateinit var mediaPlayer: MediaPlayer
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        // on below line we are initializing
        // our buttons with id.
        playIB = findViewById(R.id.idIBPlay)
        pauseIB = findViewById(R.id.idIBPause)
 
        // on below line we are
        // initializing our media player
        mediaPlayer = MediaPlayer()
 
        playIB.setOnClickListener {
 
            // on below line we are creating a variable for our audio url
            var audioUrl = "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"
 
            // on below line we are setting audio stream
            // type as stream music on below line.
            mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC)
 
            // on below line we are running a try
            // and catch block for our media player.
            try {
                // on below line we are setting audio
                // source as audio url on below line.
                mediaPlayer.setDataSource(audioUrl)
 
                // on below line we are
                // preparing our media player.
                mediaPlayer.prepare()
 
                // on below line we are
                // starting our media player.
                mediaPlayer.start()
 
            } catch (e: Exception) {
 
                // on below line we are handling our exception.
                e.printStackTrace()
            }
            // on below line we are displaying a toast message as audio player.
            Toast.makeText(applicationContext, "Audio started playing..", Toast.LENGTH_SHORT).show()
 
        }
 
        pauseIB.setOnClickListener {
            // on below line we are checking
            // if media player is playing.
            if (mediaPlayer.isPlaying) {
                // if media player is playing we
                // are stopping it on below line.
                mediaPlayer.stop()
 
                // on below line we are resetting
                // our media player.
                mediaPlayer.reset()
 
                // on below line we are calling
                // release to release our media player.
                mediaPlayer.release()
 
                // on below line we are displaying a toast message to pause audio/
                Toast.makeText(applicationContext, "Audio has been  paused..", Toast.LENGTH_SHORT)
                    .show()
 
            } else {
                // if audio player is not displaying we are displaying below toast message
                Toast.makeText(applicationContext, "Audio not played..", Toast.LENGTH_SHORT).show()
            }
 
        }
    }
}

Ahora ejecute su aplicación para ver el resultado. 

Producción: 

Publicación traducida automáticamente

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