Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

MediaPlayer en Android, reproduce sonidos en tu aplicación

Miguel Campos
  • Escrito por Miguel Campos el 02 de Junio de 2016
  • 1 min de lectura | Mobile
MediaPlayer en Android, reproduce sonidos en tu aplicación
El reproductor de video será cargado en breves instantes.

Definiendo un Servicio en Android

Un Service es una aplicación en Android que se ejecuta en background sin tener que interactuar con el usuario.

Imagen 0 en MediaPlayer en Android, reproduce sonidos en tu aplicación

Para comenzar, vamos a crear un Service, aunque lo único que haremos es crearlo y parar su ejecución.

Una vez que tenemos creado el proyecto vamos hasta el paquete donde se encuentra el MainActivity , sobre ese paquete hacemos click derecho New > Service y de las opciones que nos mostrará seleccionamos Service .

Imagen 1 en MediaPlayer en Android, reproduce sonidos en tu aplicación

En la ventana que nos aparece le damos el nombre a la que será nuestra clase service (en mi caso MyService ) y le damos a Finish .

Ahora vamos hasta la carpeta res/layout donde se encuentra el fichero activity_main.xml que modificaremos para este ejemplo con un botón para crear el servicio y otro que lo pare.

< LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    < Button
        android:id="@+id/btnStart"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onClickComenzar"
        android:text="Comenzar Servicio" />

    < Button
        android:id="@+id/btnStop"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onClickParar"
        android:text="Parar Servicio" />


Por otro lado, tenemos la clase MainActivity.java , cuya funcionalidad principal será lanzar el Service y pararlo cuando pulsemos el botón de detenerlo. Su código es el siguiente:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void onClickComenzar(View v){
        startService(new Intent(getBaseContext(), MyService.class));
    }

    public void onClickParar(View v){
        stopService(new Intent(getBaseContext(), MyService.class));
    }

}


En la clase MyService que creamos antes añadimos los siguientes métodos para iniciar y parar el servicio y quedara asi:

public class MyService extends Service {
    public MyService() {
    }

    @Override
    public IBinder onBind(Intent arg0) {
       // TODO Auto-generated method stub
       return null;
    }

    //Metodo para Iniciar el servicio
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Toast.makeText(this, "Servicio en Ejecucion", Toast.LENGTH_SHORT).show();
        return START_STICKY;
    }

    //Metodo para parar el servicio
    @Override
    public void onDestroy() {
        super.onDestroy();
        Toast.makeText(this, "Servicio destruido", Toast.LENGTH_SHORT).show();
    }
}


Veamos la función que tiene cada uno de los métodos anteriores:

onStartCommand(Intent intent, int flags, int startID):


Este método es llamado al ejecutar el servicio explícitamente con el método
startService(), será el encargado de ejecutar las instrucciones que definen lo que queremos que haga nuestro servicio. Devuele la START_STICKY, que hace que nuestro service siga ejecutándose hasta que lo detengamos explícitamente.

onDestroy():

Este método es llamado cuando el servicio es detenido usando el método stopService (), aquí es donde liberamos los recursos que hayan sido usados por nuestro service.

Para terminar debemos añadir en el AndroidManifest.xml la siguiente línea:

< service android:name=”.MyService” />

Usando la clase MediaPlayer

Una vez que tenemos declarado nuestro Servicio en Android y sabemos cómo funciona, podemos fácilmente convertirlo en un servicio de reproducción de música, haciendo uso de la clase MediaPlayer .

  1. Declaramos un variable MediaPlayer en nuestro Servicio:
    MediaPlayer mediaPlayer;
  2. En el método onStartCommand, instanciamos la variable y comenzamos a reproducir la canción:
    mediaPlayer = MediaPlayer.create(this, uriCancion);
    mediaPlayer.start()
  3. En el método onDestroy, paramos la canción:
    mediaPlayer.stop();

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars