2014-01-06 15 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的官方文檔。 –

相關問題