Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Android / Reproduce archivos MP3 desde android

Reproduce archivos MP3 desde android

Autor jc mouse jueves, febrero 19, 2015

Reproducir archivos de audio en nuestras aplicaciones android.

Necesitamos

  • IDE Eclipse y SDK Android instalado
  • Un archivo MP3
Tiempo: 15 minutos
Nivel: Básico – Intermedio

Paso 1. Proyecto

Crea un proyecto nuevo android en Eclipse llamado “JMPlayer

jmplayer

En la carpeta “RES”, crea una nueva carpeta llamada “RAW” y pega el archivo MP3 dentro de ella, como se ve en la imagen siguiente:

raw mp3

Paso 2: Interfaz

Abre el archivo activity_main.xml y pega el siguiente código:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/tvMsg"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:gravity="center"
        android:textSize="32sp" />

    <Button
        android:id="@+id/btnPlay"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/str_play" />

    <Button
        android:id="@+id/btnPause"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/str_pause" />

    <Button
        android:id="@+id/btnStop"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/str_stop" />

    <TextView
        android:id="@+id/tvTime"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/app_name"  
        android:textSize="18sp" />    

    <SeekBar
        android:id="@+id/skSong"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

También debes crear los siguientes string en la carpeta “RES/VALUES/

    <string name="str_play">PLAY</string>
    <string name="str_pause">PAUSE</string>
    <string name="str_stop">STOP</string>

Nuestra interfaz se debe ver como la siguiente imagen:

reproductor

Paso 3. Código

Para reproducir archivos MP3 haremos uso de la clase MediaPlayer que también nos permite reproducir vídeos. La clase completa del MainActivity es:

package com.bolivia.jmplayer;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.TextView;

public class MainActivity extends Activity{

 private TextView tvMsg;
 private Button btnPlay;
 private Button btnPause;
 private Button btnStop;
 private SeekBar skSong;
 private TextView tvTime;
 private MediaPlayer mPlayer = null; 
 private Handler skHandler = new Handler();

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

  //-- begin 
  mPlayer = MediaPlayer.create(MainActivity.this, R.raw.onnanokootokonoko);  

  tvMsg = (TextView) findViewById(R.id.tvMsg);
  btnPlay = (Button) findViewById(R.id.btnPlay);
  btnPause = (Button) findViewById(R.id.btnPause);
  btnStop = (Button) findViewById(R.id.btnStop);
  skSong = (SeekBar) findViewById(R.id.skSong);  
  tvTime = (TextView) findViewById(R.id.tvTime);

  //----------- button PLAY 
  btnPlay.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {

           if(!mPlayer.isPlaying())
           {
            mPlayer.start();
            tvMsg.setText("PLAY");
           }           
          }
      });
  //----------- button PAUSE
  btnPause.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view) {

          if(mPlayer.isPlaying())
          {
           mPlayer.pause();
           tvMsg.setText("PAUSE");
          }           
         }
     });

  //----------- button STOP 
  btnStop.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view) {           
           if (mPlayer != null) {
                  mPlayer.stop();
                  mPlayer.release();
                  mPlayer = MediaPlayer.create(MainActivity.this, R.raw.onnanokootokonoko);
                  tvMsg.setText(":)");
                }           
         }
     });    

  //--- Se coloca el tiempo de duracion y se inicia el seek bar
  tvTime.setText( getHRM(mPlayer.getDuration()) );
  skSong.setMax(mPlayer.getDuration());
  skSong.setProgress(mPlayer.getCurrentPosition());
  //cada segundo se actualiza el estado del seek bar
  skHandler.postDelayed(updateskSong, 1000); 

  //-- end
 }//end:onCreate

 //se hace uso de un hilo para actualizar el progreso de la reproducción 
 Runnable updateskSong = new Runnable() { 
  @Override 
  public void run() {
   skSong.setProgress( mPlayer.getCurrentPosition() );
   tvTime.setText( getHRM(mPlayer.getDuration()) + " - " + getHRM(mPlayer.getCurrentPosition()) );
   skHandler.postDelayed(updateskSong, 1000); 
  } 
 };

 /**
 * Método que convierte milisegundos a Hora:Minuto:Segundo
 * @param int milliseconds
 * @return String HH:MM:SS
 * */
 private String getHRM(int milliseconds )
 {
  int seconds = (int) (milliseconds / 1000) % 60 ;
  int minutes = (int) ((milliseconds / (1000*60)) % 60);
  int hours   = (int) ((milliseconds / (1000*60*60)) % 24);
  return ((hours<10)?"0"+hours:hours) + ":" + 
         ((minutes<10)?"0"+minutes:minutes) + ":" + 
         ((seconds<10)?"0"+seconds:seconds);
 }

 /** 
 * Cuando la actividad ya no es visible por el usuario,
 * se detiene el reproductor
 * */
 @Override
 protected void onStop() {
  super.onStop();
        if (mPlayer != null) {
         mPlayer.stop();
         mPlayer.release();
         mPlayer = MediaPlayer.create(MainActivity.this, R.raw.onnanokootokonoko);
       }
    }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }

}

Ejecuta para probar la aplicación:

android bolivia

Proyecto completo AQUI

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Crea App multilenguaje con Android Studio

Crea App multilenguaje con Android Studio

En este post aprenderemos los pasos básicos para construir una aplicación android con soporte multilenguaje, utilizaremo...

Khipu Agenda Personal gratis

Khipu Agenda Personal gratis

Completa agenda para organizar tu vida personal y/o profesional, si te olvidas de acontecimientos familiares, citas de t...

Consultas con parámetros en Access y Java

Consultas con parámetros en Access y Java

Tenemos un archivo de base de datos Access *.MDB y queremos realizar una consulta con parámetros de búsqueda utilizando...

Introducción a Fragment

Introducción a Fragment

Un Fragment representa un comportamiento o una parte de la interfaz de usuario en una Activity. Puedes combinar múltiple...

Esteganografía y encriptación de imágenes en Linux

Esteganografía y encriptación de imágenes en Linux

En un post anterior conocimos una herramienta Open Source con un conjunto de herramientas para el trabajo con imágenes e...

Yachaywasi – Crea exámenes tipo test para android

Yachaywasi – Crea exámenes tipo test para android

Yachaywasi versión 3.1 es una aplicación para android que te permite crear, editar y realizar exámenes tipo test cómodam...

2 comentarios en “Reproduce archivos MP3 desde android”

  1. Eduardo dice:

    Gran aporte, para empezar en el mundo android 🙂

  2. Jose dice:

    Muy bueno tu aporte.
    Quisiera saber como haria para que busque musica automaticamente desde la tarjeta SD o memoria interna.
    Un saludo a la distancia.

Los comentarios estan cerrados

Comparte lo que sabes

Categorias

Últimas entradas

En un post anterior conocimos una herramienta Open Source con un conjunto de herramientas para el trabajo con imágenes e...

ImageMagick es un software de código abierto multiplataforma que contiene una serie de herramientas para leer, mostrar,...

OCR (Optical Character Recognition) en español, Reconociminto Optico de Caracteres, es el proceso por el cual  se extrae...

La misión espacial de la NASA, el Mars  2020 Rover Mission esta proyectada para lanzarse en julio de 2020 y su llegada s...

Android Bolivia

MAUS