online radio streaming not working in android with mediaplayer.setDataSource method -


online radio streaming in android not working mediaplayer.setdatasource method

public class mainactivity extends activity implements view.onclicklistener {     private final static string radio_station_url = "http://tunein.com/radio/hindi-desi-bollywood-evergreen-hits-s129208/";      private progressbar playseekbar;      private button buttonplay;      private button buttonstopplay;      private button buttonrecord;      private button buttonstoprecord;      private mediaplayer player;      private inputstream recordingstream;      private recorderthread recorderthread;      private boolean isrecording = false;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          initializeuielements();          initializemediaplayer();     }     private void initializeuielements() {          playseekbar = (progressbar) findviewbyid(r.id.progressbar1);         playseekbar.setmax(100);         playseekbar.setvisibility(view.invisible);          buttonplay = (button) findviewbyid(r.id.buttonplay);         buttonplay.setonclicklistener(this);          buttonstopplay = (button) findviewbyid(r.id.buttonstopplay);         buttonstopplay.setenabled(false);         buttonstopplay.setonclicklistener(this);          buttonrecord = (button) findviewbyid(r.id.buttonrecord);         buttonrecord.setonclicklistener(this);          buttonstoprecord = (button) findviewbyid(r.id.buttonstoprecord);         buttonstoprecord.setonclicklistener(this);     }      @override     public boolean oncreateoptionsmenu(menu menu) {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.menu_main, menu);         return true;     }      @override     public boolean onoptionsitemselected(menuitem item) {         // handle action bar item clicks here. action bar         // automatically handle clicks on home/up button, long         // specify parent activity in androidmanifest.xml.         int id = item.getitemid();          //noinspection simplifiableifstatement         if (id == r.id.action_settings) {             return true;         }          return super.onoptionsitemselected(item);     }      @override     public void onclick(view v) {         if (v == buttonplay) {             startplaying();         } else if (v == buttonstopplay) {             stopplaying();         } else if (v == buttonrecord) {             recorderthread = new recorderthread();             recorderthread.start();              buttonrecord.setenabled(false);             buttonstoprecord.setenabled(true);         } else if (v == buttonstoprecord) {             stoprecording();         }      }       private void startplaying() {         buttonstopplay.setenabled(true);         buttonplay.setenabled(false);          playseekbar.setvisibility(view.visible);          player.prepareasync();          player.setonpreparedlistener(new mediaplayer.onpreparedlistener() {              public void onprepared(mediaplayer mp) {                 player.start();                 buttonrecord.setenabled(true);             }         });      }      private void stopplaying() {         if (player.isplaying()) {             player.stop();             player.release();             initializemediaplayer();         }          buttonplay.setenabled(true);         buttonstopplay.setenabled(false);         playseekbar.setvisibility(view.invisible);         buttonrecord.setenabled(false);         buttonstoprecord.setenabled(false);         stoprecording();     }      private void initializemediaplayer() {         player = new mediaplayer();         try {             player.setdatasource(radio_station_url);         } catch (illegalargumentexception e) {             e.printstacktrace();         } catch (illegalstateexception e) {             e.printstacktrace();         } catch (ioexception e) {             e.printstacktrace();         }          player.setonbufferingupdatelistener(new mediaplayer.onbufferingupdatelistener() {              public void onbufferingupdate(mediaplayer mp, int percent) {                 playseekbar.setsecondaryprogress(percent);                 log.i("buffering", "" + percent);             }         });     }       @override     protected void onpause() {         super.onpause();         if (player.isplaying()) {             player.stop();         }     }      private void startrecording() {          bufferedoutputstream writer = null;         try {             url url = new url(radio_station_url);             urlconnection connection = url.openconnection();             final string folder_path = environment.getexternalstoragedirectory().getabsolutepath()                     + file.separator + "songs";              file folder = new file(folder_path);             if (!folder.exists()) {                 folder.mkdir();             }              writer = new bufferedoutputstream(new fileoutputstream(new file(folder_path                     + file.separator + "sample.mp3")));             recordingstream = connection.getinputstream();              final int buffer_size = 100;              byte[] buffer = new byte[buffer_size];              while (recordingstream.read(buffer, 0, buffer_size) != -1 && isrecording) {                 writer.write(buffer, 0, buffer_size);                 writer.flush();             }          } catch (malformedurlexception e) {             e.printstacktrace();         } catch (ioexception e) {             e.printstacktrace();         } {             try {                 recordingstream.close();                 writer.flush();                 writer.close();             } catch (ioexception e) {                 e.printstacktrace();             }         }     }      private void stoprecording() {         buttonstoprecord.setenabled(false);         buttonrecord.setenabled(true);         try {             isrecording = false;             if (recordingstream != null) {                 recordingstream.close();             }         } catch (ioexception e) {             e.printstacktrace();         }     }      private class recorderthread extends thread {         @override         public void run() {             isrecording = true;             startrecording();         }      };  } 


Comments