java - How to use progressdialog in service for play music from server -
i'm want play music server , play in backgrond use server play in backgrand want use progressdialog when song buffering when add progressdialog in server program stops,how use progressdialog in server?thank guiding me or give me piece of code. service code
service
public class playerinservice extends service implements view.onclicklistener, mediaplayer.oncompletionlistener, seekbar.onseekbarchangelistener { private weakreference<imagebutton> btnplay; private weakreference<imagebutton> btnstop; public static weakreference<textview> textviewsongtime; public static weakreference<seekbar> songprogressbar; static handler progressbarhandler = new handler(); public static mediaplayer mp; private boolean ispause = false; imageview imageview; @override public void oncreate() { mp = new mediaplayer(); mp.reset(); mp.setaudiostreamtype(audiomanager.stream_music); super.oncreate(); } @suppresswarnings("deprecation") @override public int onstartcommand(intent intent, int flags, int startid) { initui(); super.onstart(intent, startid); return start_sticky; } @override public ibinder onbind(intent intent) { return null; } private void initui() { btnplay = new weakreference<>(play.btnplay); btnstop = new weakreference<>(play.btnstop); textviewsongtime = new weakreference<>(play.textviewsongtime); songprogressbar = new weakreference<>(play.seekbar); songprogressbar.get().setonseekbarchangelistener(this); btnplay.get().setonclicklistener(this); btnstop.get().setonclicklistener(this); mp.setoncompletionlistener(this); } public void onclick(view v) { switch (v.getid()) { case r.id.btnplay: pd=new progressdialog(this); pd.setmessage("loading"); if (mp.isplaying()) { mp.pause(); ispause = true; progressbarhandler.removecallbacks(mupdatetimetask); btnplay.get().setbackgroundresource(r.drawable.player); return; } if (ispause) { mp.start(); ispause = false; updateprogressbar(); btnplay.get().setbackgroundresource(r.drawable.pause); return; } if (!mp.isplaying()) { playsong(); } break; case r.id.btnstop: mp.stop(); oncompletion(mp); textviewsongtime.get().settext("0.00/0.00"); // displaying time completed playing break; } } public void updateprogressbar() { try { progressbarhandler.postdelayed(mupdatetimetask, 100); } catch (exception e) { } } static runnable mupdatetimetask = new runnable() { public void run() { long totalduration = 0; long currentduration = 0; try { totalduration = mp.getduration(); currentduration = mp.getcurrentposition(); textviewsongtime.get().settext(utility.millisecondstotimer(currentduration) + "/" + utility.millisecondstotimer(totalduration)); // displaying time completed playing int progress = (int) (utility.getprogresspercentage(currentduration, totalduration)); songprogressbar.get().setprogress(progress); /* running thread after 100 milliseconds */ progressbarhandler.postdelayed(this, 100); } catch (exception e) { e.printstacktrace(); } } }; @override public void ondestroy() { } // play song public void playsong() { // utility.initnotification("playing (amar shonar bangla)...", this); try { mp.reset(); final uri myuri = uri.parse("http://www.androidtutorialpoint.com/wp-content/uploads/2016/09/androiddownloadmanager.mp3"); // /uri myuri = uri.parse("android.resource://" + this.getpackagename() + "/" + r.raw.bangla); mp.setdatasource(this, myuri); mp.prepareasync(); mp.setonpreparedlistener(new mediaplayer.onpreparedlistener() { public void onprepared(mediaplayer mp) { try { mp.start(); updateprogressbar(); btnplay.get().setbackgroundresource(r.drawable.pause); } catch (exception e) { log.i("exception", "" + e.getmessage()); } } }); } catch (exception e) { e.printstacktrace(); } } @override public void oncompletion(mediaplayer mp) { songprogressbar.get().setprogress(0); progressbarhandler.removecallbacks(mupdatetimetask); /* progress update stop */ btnplay.get().setbackgroundresource(r.drawable.player); } @override public void onprogresschanged(seekbar seekbar, int progress, boolean fromuser) { } @override public void onstarttrackingtouch(seekbar seekbar) { progressbarhandler.removecallbacks(mupdatetimetask); } @override public void onstoptrackingtouch(seekbar seekbar) { progressbarhandler.removecallbacks(mupdatetimetask); int totalduration = mp.getduration(); int currentposition = utility.progresstotimer(seekbar.getprogress(), totalduration); mp.seekto(currentposition); updateprogressbar(); } }
please me
Comments
Post a Comment