2014-01-06 14 views
1

我有一个小应用程序,从网络的differents urls流,我想处理无效/破损的url,我已经尝试了各种提供的catch,但即使在流破碎的文件,我可以看到我日志中的日志中,我看到的是Android - MediaPlayer,如何在流传输时捕获破损的url

Error (1,-1004) 

,这里是我的时刻

mediaPlayer.reset(); 
     try { 
      mediaPlayer.setDataSource(urlString); 
      Log.w("myApp", "0"); 
      mediaPlayer.prepareAsync(); // might take long! (for buffering, etc) 
      playPauseButton.setVisibility(View.INVISIBLE); 
      progressBar1.setVisibility(View.VISIBLE); 
      mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
       @Override 
       public void onPrepared(MediaPlayer mediaPlayer) { 
        // TODO Auto-generated method stub 

        duration = mediaPlayer.getDuration(); 
        textDuration.setText(getDurationString(duration/1000)); 
        progress.setMax(duration); 
        playPauseButton.setChecked(true); 
        mediaPlayer.start(); 
        playPauseButton.setVisibility(View.VISIBLE); 
        progressBar1.setVisibility(View.INVISIBLE); 
       } 
      }); 

     } catch (IllegalArgumentException e) { 
      // TODO Auto-generated catch block 
      Log.w("myApp", "1"); 
      e.printStackTrace(); 
     } catch (SecurityException e) { 
      // TODO Auto-generated catch block 
      Log.w("myApp", "2"); 
      e.printStackTrace(); 
     } catch (IllegalStateException e) { 
      // TODO Auto-generated catch block 
      Log.w("myApp", "3"); 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      Log.w("myApp", "4"); 
      e.printStackTrace(); 
     } 

谢谢你的帮助代码。)

+1

你不尝试捕获一个泛型异常?然后找出它是什么类型?从发布的信息中,我无​​法确定抛出异常的位置 - 如果有的话。 –

+0

我很新的android编码,你能解释我如何捕获泛型异常? – user3119384

+0

catch(Exception e){ Log.w(“myApp”,“5”); e.printStackTrace(); } –

回答

1

的MediaPlayer。 OnErrorListe ner可能会有帮助。这不是一个例外,所以你不能抓住它。

onError(MediaPlayer mp, int what, int extra); 

官方文档。 MEDIA_ERROR_IO是额外的代码。

public static final int MEDIA_ERROR_IO 

Added in API level 17 
File or network related operation errors. 

Constant Value: -1004 (0xfffffc14) 
+0

也许正确的答案,但只是给一个链接,有危险,如果链接变得陈旧,没有人会知道答案。请扩大 –

+0

哦,它是谷歌的官方文档...... – venciallee

+0

因此,也习惯了Sun的官方文档。 –

相关问题