android - MediaPlayer error (1, -1004) aka MEDIA_ERROR_IO trying to stream music on Samsung S3 -


note: i'm not working @ company worked when posted question, therefore, though great answers might come in, won't testing them since don't have reason (other promoting community; might cause me 1 day).

if however, answer problem promoted many other comunity members, might opt select correct answer problem experienced many years after posted question.

in meantime, hope of answers may of experiencing problem. yay stack overflow!


our application has stream music online source (i'm not @ liberty disclose source).

why take on 2 minutes start streaming on s3?

i've been able figure out media player object goes error state due media_error_unkown - great. doesn't me much. upon handling in onerror onerrorlistener, reset media player object , call startplaying rest - setting data source, etc.

members:

private progressbar playseekbar; private imageview ivplay; private imageview ivpause; private imageview ivbuffer; private mediaplayer mplayer; private imageview ivinfo; private audiomanager audio; 

initializing media player (and visualizer - not issue purpose of question)

private void initialmediaplayerandvisualizer() {       log.d(tag, "initial media player , visualizer");        playseekbar = (progressbar) findviewbyid(r.id.progressbar1);       playseekbar.setmax(100);       playseekbar.setvisibility(view.gone);        mplayer = new mediaplayer();           log.d(tag, "create onerrorlistener");       mediaplayer.onerrorlistener errorlistener = new mediaplayer.onerrorlistener() {          @override         public boolean onerror(mediaplayer mp, int what, int extra) {             log.d(tag, "onerror - error code: "+what+" code: "+extra);              switch(what){             case -1004:                 log.d("streaming media", "media_error_io");                 break;             case -1007:                 log.d("streaming media", "media_error_malformed");                 break;             case 200:                 log.d("streaming media", "media_error_not_valid_for_progressive_playback");                 break;             case 100:                 log.d("streaming media", "media_error_server_died");                 break;             case -110:                 log.d("streaming media", "media_error_timed_out");                 break;             case 1:                 log.d("streaming media", "media_error_unknown");                 break;             case -1010:                 log.d("streaming media", "media_error_unsupported");                 break;              }              switch(extra){             case 800:                 log.d("streaming media", "media_info_bad_interleaving");                 break;             case 702:                 log.d("streaming media", "media_info_buffering_end");                 break;             case 701:                 log.d("streaming media", "media_info_metadata_update");                 break;             case 802:                 log.d("streaming media", "media_info_metadata_update");                 break;             case 801:                 log.d("streaming media", "media_info_not_seekable");                 break;             case 1:                 log.d("streaming media", "media_info_unknown");                 break;             case 3:                 log.d("streaming media", "media_info_video_rendering_start");                 break;             case 700 :                 log.d("streaming media", "media_info_video_track_lagging");                 break;              }              log.d("streaming media", "reset media player");             mplayer.reset();             // need link visualizer view media player displays               mvisualizermanager = new visualizermanager(context); //(visualizerview) findviewbyid(r.id.visualizerview);                //send visualizercontainer renderer               visualizerrenderer = new visualizerrenderer(arrayvisualizer);               mvisualizermanager.addrenderer(visualizerrenderer);                try {                 startplaying();             } catch (illegalstateexception e) {                 // todo auto-generated catch block                 e.printstacktrace();             } catch (ioexception e) {                 // todo auto-generated catch block                 e.printstacktrace();             }              return true;         }     };      log.d(tag, "set error listener on media player object");                mplayer.setonerrorlistener(errorlistener);        // need link visualizer view media player displays       mvisualizermanager = new visualizermanager(context); //(visualizerview) findviewbyid(r.id.visualizerview);        //send visualizercontainer renderer       visualizerrenderer = new visualizerrenderer(arrayvisualizer);       mvisualizermanager.addrenderer(visualizerrenderer);        try {         startplaying();     } catch (illegalstateexception e) {         // todo auto-generated catch block         e.printstacktrace();     } catch (ioexception e) {         // todo auto-generated catch block         e.printstacktrace();     } } 

start playing:

private void startplaying () throws illegalstateexception, ioexception, unsupportedoperationexception   {      if(mplayer != null){            ivpause.setvisibility(view.invisible);           ivplay.setvisibility(view.invisible);           ivbuffer.setvisibility(view.visible);          mvisualizermanager.link(mplayer);          mplayer.setonbufferingupdatelistener(new onbufferingupdatelistener() {              public void onbufferingupdate(mediaplayer mp, int percent) {                 playseekbar.setsecondaryprogress(percent);                 log.i("buffering", "" + percent);             }         });          try {             mplayer.setdatasource(thesource);         } catch (illegalargumentexception e) {             log.d(tag, "illegal argument exception: "+e);             e.printstacktrace();         } catch (illegalstateexception e) {             log.d(tag, "illegal state exception: "+e);             e.printstacktrace();         } catch (ioexception e) {             log.d(tag, "io exception: "+e);             e.printstacktrace();         }        mplayer.prepareasync();        mplayer.setonpreparedlistener(new onpreparedlistener() {           public void onprepared(mediaplayer mp) {               ivbuffer.setvisibility(view.invisible);                bars.setvisibility(view.invisible);               visualizercontainer.setvisibility(view.visible);               ivinfo.setimageresource(r.drawable.img_radio_info_online);               ivpause.setvisibility(view.visible);               ivplay.setvisibility(view.invisible);                //mute video if phone muted.               if ((audio.getringermode() == audiomanager.ringer_mode_silent) ||  (audio.getringermode() == audiomanager.ringer_mode_vibrate)) {                   mp.setvolume(0, 0);                    toast toast = toast.maketext(context, r.string.device_muted, toast.length_long);                   toast.show();               }                mplayer.start();           }       });      }else{         log.d(tag, "media player null.");         initialmediaplayerandvisualizer();     }    } 

stop playing:

private void stopplaying()       {       bars.setvisibility(view.visible);       visualizercontainer.setvisibility(view.invisible);        ivinfo.setimageresource(r.drawable.img_radio_info_offline);        ivplay.setvisibility(view.visible);       ivpause.setvisibility(view.invisible);        mplayer.stop();        mvisualizermanager.release();       mplayer.release();        mplayer = null; } 

a little logs:

05-21 16:26:23.600: i/buffering(3921): 0  05-21 16:26:23.600: i/mediaplayer(3921): info (703,156) 05-21 16:26:23.600: i/mediaplayer(3921): info (701,0) 05-21 16:26:23.610: d/visualizerrenderer(3921): render columns 05-21 16:26:23.715: v/mediaplayer(3921): message received msg=100, ext1=1, ext2=-110 05-21 16:26:23.715: e/mediaplayer(3921): error (1, -110) 05-21 16:26:23.715: v/mediaplayer(3921): callback application 05-21 16:26:23.715: v/mediaplayer(3921): callback 05-21 16:26:23.725: d/visualizerrenderer(3921): render columns 05-21 16:26:23.725: e/mediaplayer(3921): error (1,-110) 05-21 16:26:23.725: d/main(3921): onerror - error code: 1 code: -110 05-21 16:26:23.725: d/streaming media(3921): media_error_unknown 05-21 16:26:23.725: d/streaming media(3921): reset media player 05-21 16:26:23.725: v/mediaplayer-jni(3921): reset 05-21 16:26:23.725: v/mediaplayer(3921): reset 05-21 16:26:23.730: d/visualizerrenderer(3921): divisions: 9 05-21 16:26:23.730: d/visualizermanager(3921): added te renderer 05-21 16:26:23.730: v/mediaplayer-jni(3921): get_session_id() 05-21 16:26:23.735: d/visualizermanager(3921): media player , visualizer linked 05-21 16:26:23.735: d/visualizermanager(3921): set capture listener 05-21 16:26:23.735: d/visualizermanager(3921): set on visualizer complete listener 05-21 16:26:23.740: v/mediaplayer(3921): setvideosurfacetexture 05-21 16:26:23.740: v/mediaplayer(3921): prepareasync 05-21 16:26:25.285: v/mediaplayer(3921): message received msg=3, ext1=0, ext2=0 05-21 16:26:25.285: v/mediaplayer(3921): buffering 0 05-21 16:26:25.285: v/mediaplayer(3921): callback application 05-21 16:26:25.285: v/mediaplayer(3921): callback 05-21 16:26:25.330: i/buffering(3921): 0 05-21 16:26:25.390: v/mediaplayer(3921): message received msg=3, ext1=0, ext2=0 05-21 16:26:25.390: v/mediaplayer(3921): buffering 0 05-21 16:26:25.390: v/mediaplayer(3921): callback application 05-21 16:26:25.390: v/mediaplayer(3921): callback 05-21 16:26:25.425: i/buffering(3921): 0 05-21 16:26:25.490: v/mediaplayer(3921): message received msg=3, ext1=0, ext2=0 05-21 16:26:25.490: v/mediaplayer(3921): buffering 0 05-21 16:26:25.490: v/mediaplayer(3921): callback application 05-21 16:26:25.490: v/mediaplayer(3921): callback ...  05-21 16:26:52.585: i/buffering(3921): 0 05-21 16:26:53.570: v/mediaplayer(3921): message received msg=3, ext1=0, ext2=0 05-21 16:26:53.570: v/mediaplayer(3921): buffering 0 05-21 16:26:53.570: v/mediaplayer(3921): callback application 05-21 16:26:53.570: v/mediaplayer(3921): callback 05-21 16:26:53.585: i/buffering(3921): 0 05-21 16:26:54.570: v/mediaplayer(3921): message received msg=3, ext1=0, ext2=0 05-21 16:26:54.570: v/mediaplayer(3921): buffering 0 05-21 16:26:54.570: v/mediaplayer(3921): callback application 05-21 16:26:54.570: v/mediaplayer(3921): callback 05-21 16:26:54.570: v/mediaplayer(3921): message received msg=200, ext1=702, ext2=0 05-21 16:26:54.570: w/mediaplayer(3921): info/warning (702, 0) 05-21 16:26:54.570: v/mediaplayer(3921): callback application 05-21 16:26:54.570: v/mediaplayer(3921): callback 05-21 16:26:54.590: i/buffering(3921): 0 05-21 16:26:54.590: i/mediaplayer(3921): info (702,0) 05-21 16:26:55.575: v/mediaplayer(3921): message received msg=3, ext1=0, ext2=0 05-21 16:26:55.575: v/mediaplayer(3921): buffering 0 05-21 16:26:55.575: v/mediaplayer(3921): callback application 05-21 16:26:55.575: v/mediaplayer(3921): callback 05-21 16:26:55.575: i/buffering(3921): 0 05-21 16:26:56.575: v/mediaplayer(3921): message received msg=3, ext1=0, ext2=0 05-21 16:26:56.575: v/mediaplayer(3921): buffering 0 05-21 16:26:56.575: v/mediaplayer(3921): callback application 05-21 16:26:56.575: v/mediaplayer(3921): callback 05-21 16:26:56.585: i/buffering(3921): 0 05-21 16:26:57.575: v/mediaplayer(3921): message received msg=3, ext1=0, ext2=0 05-21 16:26:57.575: v/mediaplayer(3921): buffering 0 05-21 16:26:57.575: v/mediaplayer(3921): callback application 05-21 16:26:57.575: v/mediaplayer(3921): callback 05-21 16:26:57.600: i/buffering(3921): 0 05-21 16:26:57.930: v/mediaplayer-jni(3921): stop 05-21 16:26:57.930: v/mediaplayer(3921): stop 05-21 16:26:57.930: d/visualizermanager(3921): released visualizer 05-21 16:26:57.930: v/mediaplayer-jni(3921): release 05-21 16:26:57.930: v/mediaplayer(3921): setlistener 05-21 16:26:57.930: v/mediaplayer(3921): disconnect 05-21 16:26:57.935: v/mediaplayer(3921): destructor 05-21 16:26:57.935: v/mediaplayer(3921): disconnect 

the answer question turned out issue on android firmware installed on samsung s iii devices running android 4.1.2.

it seemed have been relating source of stream, because sources played on device, 1 needed, never played.

if can stream source, should work.

so if you're developing application specific company/purpose , have control on source of stream, or can communicate people in control of source of stream, them change source of stream that'll work on samsung s iii running android 4.1.2.

other solve firmware upgrade.


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -