android - mediaplayer stop song when exit app or phone ring -


my song not stop when hit home button or when answer call? timer not stop when song stopped? there way can stop timer? please me?

public class mainactivity extends activity {      private button start, stop;     private mediaplayer mp;     private textview display, comment;      private textview timervalue;      private long starttime = 0l;      private handler customhandler = new handler();      long timeinmilliseconds = 0l;     long timeswapbuff = 0l;     long updatedtime = 0l;      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.main);          timervalue = (textview) findviewbyid(r.id.timervalue);         start = (button) findviewbyid(r.id.bstart);         start.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view v) {                  mp = mediaplayer.create(mainactivity.this, r.raw.splahsound);                 mp.start();                 starttime = systemclock.uptimemillis();                 customhandler.postdelayed(updatetimerthread, 0);                  mp.setoncompletionlistener(new mediaplayer.oncompletionlistener() {                      @override                     public void oncompletion(mediaplayer mp) {                          mp.stop();                         mp.reset();                         mp.release(); // free memory                         mp = null;                      }                  });              }         });          stop = (button) findviewbyid(r.id.bdur);         stop.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view v) {                  if (mp != null) {                     try {                          mp.stop();                         mp.reset();                         mp.release();                         mp = null;                      } catch (exception e) {                         log.d("error", e.tostring());                     }                 }                 timeswapbuff += timeinmilliseconds;                 customhandler.removecallbacks(updatetimerthread);                             }         });     }      @override     protected void onpause() {         super.onpause();            }      private runnable updatetimerthread = new runnable() {          public void run() {              timeinmilliseconds = systemclock.uptimemillis() - starttime;              updatedtime = timeswapbuff + timeinmilliseconds;              int secs = (int) (updatedtime / 1000);             int mins = secs / 60;             secs = secs % 60;             // int milliseconds = (int) (updatedtime % 1000);             timervalue.settext("" + mins + ":" + string.format("%02d", secs));             customhandler.postdelayed(this, 0);         }      };  } 

you can stop mediaplayer in onpause method:

@override protected void onpause() {     //stop mediaplayer:     if (mp != null && mp.isplaying()) {         mp.stop();     }     super.onpause();        } 

instead of:

@override protected void onpause() {     super.onpause();        } 

note: check if mediaplayer playing important, because calling stop() method on mediaplayer not playing throw ilegalstateexception.


Comments

Popular posts from this blog

javascript - jquery or ashx not working -

opencv - DataType<cv::detail::deriv_type>::depth what is it used for -

python 3.x - Mapping specific letters onto a list of words -