package com.example.lionmusic;
importandroid.media.MediaPlayer;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.app.Activity;
importandroid.view.Menu;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.SeekBar;
importandroid.widget.TextView;
publicclassMainActivityextendsActivity{
private TextViewtvMsg;
private ButtonbtnPlay;
private ButtonbtnPause;
private ButtonbtnStop;
private SeekBarskSong;
private TextViewtvTime;
private MediaPlayermPlayer=null;
private HandlerskHandler=new Handler();
@Override
protectedvoidonCreate(BundlesavedInstanceState) {
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);
//----------- buttonPLAY
btnPlay.setOnClickListener(newView.OnClickListener() {
@Override
publicvoidonClick(View view){
if(!mPlayer.isPlaying())
{
mPlayer.start();
tvMsg.setText("PLAY");
}
}
});
//----------- buttonPAUSE
btnPause.setOnClickListener(new View.OnClickListener() {
@Override
publicvoidonClick(Viewview){
if(mPlayer.isPlaying())
{
mPlayer.pause();
tvMsg.setText("PAUSE");
}
}
});
//----------- buttonSTOP
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
publicvoidonClick(Viewview){
if (mPlayer!=null) {
mPlayer.stop();
mPlayer.release();
mPlayer= MediaPlayer.create(MainActivity.this,
R.raw.onnanokootokonoko);
tvMsg.setText(":)");
}
}
});
//--- Se colocael tiempode duracionyse iniciael seekbar
tvTime.setText( getHRM(mPlayer.getDuration()));
skSong.setMax(mPlayer.getDuration());
skSong.setProgress(mPlayer.getCurrentPosition());
//cada segundose actualizael estadodel seekbar
skHandler.postDelayed(updateskSong,1000);
//-- end
}//end:onCreate
//se hace uso de un hilopara actualizarel progresode lareproducción
Runnable updateskSong=new Runnable() {
@Override
publicvoidrun() {
skSong.setProgress( mPlayer.getCurrentPosition() );
tvTime.setText( getHRM(mPlayer.getDuration()) +" - " +
getHRM(mPlayer.getCurrentPosition()));
skHandler.postDelayed(updateskSong,1000);
}
};
/**
* Métodoque convierte milisegundosaHora:Minuto:Segundo
* @param intmilliseconds
* @returnStringHH:MM:SS
* */
private StringgetHRM(intmilliseconds)
{
intseconds= (int) (milliseconds/1000) % 60 ;
intminutes= (int) ((milliseconds/(1000*60)) % 60);
inthours = (int) ((milliseconds/(1000*60*60)) % 24);
return((hours<10)?"0"+hours:hours) +":"+
((minutes<10)?"0"+minutes:minutes) +":" +
((seconds<10)?"0"+seconds:seconds);
}
/**
* Cuandola actividadyano esvisible porel usuario,
* se detiene el reproductor
* */
@Override
protectedvoidonStop() {
super.onStop();
if (mPlayer!=null) {
mPlayer.stop();
mPlayer.release();
mPlayer= MediaPlayer.create(MainActivity.this,R.raw.onnanokootokonoko);
}
}
@Override
publicbooleanonCreateOptionsMenu(Menumenu) {
getMenuInflater().inflate(R.menu.main,menu);
returntrue;
}
}

Código

  • 1.
    package com.example.lionmusic; importandroid.media.MediaPlayer; importandroid.os.Bundle; importandroid.os.Handler; importandroid.app.Activity; importandroid.view.Menu; importandroid.view.View; importandroid.widget.Button; importandroid.widget.SeekBar; importandroid.widget.TextView; publicclassMainActivityextendsActivity{ private TextViewtvMsg; privateButtonbtnPlay; private ButtonbtnPause; private ButtonbtnStop; private SeekBarskSong; private TextViewtvTime; private MediaPlayermPlayer=null; private HandlerskHandler=new Handler(); @Override protectedvoidonCreate(BundlesavedInstanceState) { 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); //----------- buttonPLAY btnPlay.setOnClickListener(newView.OnClickListener() { @Override publicvoidonClick(View view){
  • 2.
    if(!mPlayer.isPlaying()) { mPlayer.start(); tvMsg.setText("PLAY"); } } }); //----------- buttonPAUSE btnPause.setOnClickListener(new View.OnClickListener(){ @Override publicvoidonClick(Viewview){ if(mPlayer.isPlaying()) { mPlayer.pause(); tvMsg.setText("PAUSE"); } } }); //----------- buttonSTOP btnStop.setOnClickListener(new View.OnClickListener() { @Override publicvoidonClick(Viewview){ if (mPlayer!=null) { mPlayer.stop(); mPlayer.release(); mPlayer= MediaPlayer.create(MainActivity.this, R.raw.onnanokootokonoko); tvMsg.setText(":)"); } } }); //--- Se colocael tiempode duracionyse iniciael seekbar tvTime.setText( getHRM(mPlayer.getDuration())); skSong.setMax(mPlayer.getDuration()); skSong.setProgress(mPlayer.getCurrentPosition()); //cada segundose actualizael estadodel seekbar skHandler.postDelayed(updateskSong,1000); //-- end }//end:onCreate
  • 3.
    //se hace usode un hilopara actualizarel progresode lareproducción Runnable updateskSong=new Runnable() { @Override publicvoidrun() { skSong.setProgress( mPlayer.getCurrentPosition() ); tvTime.setText( getHRM(mPlayer.getDuration()) +" - " + getHRM(mPlayer.getCurrentPosition())); skHandler.postDelayed(updateskSong,1000); } }; /** * Métodoque convierte milisegundosaHora:Minuto:Segundo * @param intmilliseconds * @returnStringHH:MM:SS * */ private StringgetHRM(intmilliseconds) { intseconds= (int) (milliseconds/1000) % 60 ; intminutes= (int) ((milliseconds/(1000*60)) % 60); inthours = (int) ((milliseconds/(1000*60*60)) % 24); return((hours<10)?"0"+hours:hours) +":"+ ((minutes<10)?"0"+minutes:minutes) +":" + ((seconds<10)?"0"+seconds:seconds); } /** * Cuandola actividadyano esvisible porel usuario, * se detiene el reproductor * */ @Override protectedvoidonStop() { super.onStop(); if (mPlayer!=null) { mPlayer.stop(); mPlayer.release(); mPlayer= MediaPlayer.create(MainActivity.this,R.raw.onnanokootokonoko); } } @Override publicbooleanonCreateOptionsMenu(Menumenu) { getMenuInflater().inflate(R.menu.main,menu);
  • 4.