mp3 - android automatically Start onClick when open activity -
public class streamingmp3player extends activity implements onclicklistener, ontouchlistener, oncompletionlistener, onbufferingupdatelistener{ private imagebutton buttonplaypause; private seekbar seekbarprogress; public edittext edittextsongurl; private mediaplayer mediaplayer; private int mediafilelengthinmilliseconds; private final handler handler = new handler(); /** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); initview(); } /** method initialise views in project*/ private void initview() { buttonplaypause = (imagebutton)findviewbyid(r.id.buttontestplaypause); buttonplaypause.setonclicklistener(this); seekbarprogress = (seekbar)findviewbyid(r.id.seekbartestplay); seekbarprogress.setmax(99); // means 100% .0-99 seekbarprogress.setontouchlistener(this); edittextsongurl = (edittext)findviewbyid(r.id.edittextsongurl); edittextsongurl.settext(r.string.testsong_20_sec); mediaplayer = new mediaplayer(); mediaplayer.setonbufferingupdatelistener(this); mediaplayer.setoncompletionlistener(this); } private void primaryseekbarprogressupdater() { seekbarprogress.setprogress((int)(((float)mediaplayer.getcurrentposition()/ mediafilelengthinmilliseconds)*100)); // math construction give percentage of "was playing"/"song length" if (mediaplayer.isplaying()) { runnable notification = new runnable() { public void run() { primaryseekbarprogressupdater(); } }; handler.postdelayed(notification,1000); } } @override public void onclick(view v) { if(v.getid() == r.id.buttontestplaypause){ /** imagebutton onclick event handler. method start/pause mediaplayer playing */ try { mediaplayer.setdatasource(edittextsongurl.gettext().tostring()); // setup song http://www.hrupin.com/wp-content/uploads/mp3/testsong_20_sec.mp3 url mediaplayer data source mediaplayer.prepare(); // must call method after setup datasource in setdatasource method. after calling prepare() instance of mediaplayer starts load data url internal buffer. } catch (exception e) { e.printstacktrace(); } mediafilelengthinmilliseconds = mediaplayer.getduration(); // gets song length in milliseconds url if(!mediaplayer.isplaying()){ mediaplayer.start(); buttonplaypause.setimageresource(r.drawable.button_pause); }else { mediaplayer.pause(); buttonplaypause.setimageresource(r.drawable.button_play); } primaryseekbarprogressupdater(); } } @override public boolean ontouch(view v, motionevent event) { if(v.getid() == r.id.seekbartestplay){ /** seekbar ontouch event handler. method seeks mediaplayer seekbar primary progress position*/ if(mediaplayer.isplaying()){ seekbar sb = (seekbar)v; int playpositioninmillisecconds = (mediafilelengthinmilliseconds / 100) * sb.getprogress(); mediaplayer.seekto(playpositioninmillisecconds); } } return false; } @override public void oncompletion(mediaplayer mp) { /** mediaplayer oncompletion event handler. method calls song playing complete*/ buttonplaypause.setimageresource(r.drawable.button_play); } @override public void onbufferingupdate(mediaplayer mp, int percent) { /** method updates seekbar secondary progress current song loading url position*/ seekbarprogress.setsecondaryprogress(percent); } }
now code play mp3 when click "buttonplaypause" image button. need auto start play button when open activity... possible?
my layout
<textview android:text="song titile" android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/songtitle"/> <textview android:layout_below="@+id/songtitle" android:text="the song url" android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/songurl"/> <imagebutton android:layout_below="@+id/songurl" android:id="@+id/buttontestplaypause" android:layout_height="wrap_content" android:layout_width="fill_parent" android:src="@drawable/button_play"/> <seekbar android:layout_below="@+id/buttontestplaypause" android:id="@+id/seekbartestplay" android:layout_height="wrap_content" android:layout_width="fill_parent" android:thumb="@drawable/thumb_transparent"/> </relativelayout>
i passing url activity ... need if open activity start , play mp3 automatically.. dont want click play button
move onclick()
's logic inside method, , call method both onclick , oncreate
private void mymethod() { // logic here } @override public void onclick(view v) { if(v.getid() == r.id.buttontestplaypause){ mymethod(); } } @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); initview(); mymethod(); }
Comments
Post a Comment