Desarrollo Móvil

MediaPlayer en Android, reproduce sonidos en tu aplicación

Videotutorial donde aprenderás a utilizar la clase MediaPlayer en Android, para poder reproducir audios y vídeos en tus aplicaciones Android.

Publicado el 02 de Junio de 2016
Compartir

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();

Compartir este post

También te puede interesar...

Tecnología

Multiscreen, diseña en Android para diferentes pantallas

12 Abril 2016 Miguel Campos
Programación en Android

Curso de Android Online

11 horas y 34 minutos · Curso

Aprende a programar en Android y Java para crear aplicaciones móviles desde cero de manera profesional. Pasa tu idea al código, conéctela con API Rest, …

  • Desarrollo Móvil
Artículos
Ver todos