2016-08-11 1 views

答えて

3

はい、あなたはVideoViewにsetOnErrorListener(..)を使用して、そこにエラーを処理することができます。次に例を示します。

mVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() { 
       @Override 
       public boolean onError(MediaPlayer mp, int what, int extra) { 

        switch(what){ 

         case MediaPlayer.MEDIA_ERROR_UNKNOWN: 
          // handle MEDIA_ERROR_UNKNOWN, optionally handle extras 
          handleExtras(extra); 
          break; 

         case MediaPlayer.MEDIA_ERROR_SERVER_DIED: 
          // handle MEDIA_ERROR_SERVER_DIED, optionally handle extras 
          handleExtras(extra); 
          break; 
        } 

        return true; 
       } 
      }); 

... 

    private void handleExtras(int extra){ 
      switch(extra){ 
       case MediaPlayer.MEDIA_ERROR_IO: 
        // handle MEDIA_ERROR_IO 
        break; 
       case MediaPlayer.MEDIA_ERROR_MALFORMED: 
        // handle MEDIA_ERROR_MALFORMED 
        break; 
       case MediaPlayer.MEDIA_ERROR_UNSUPPORTED: 
        // handle MEDIA_ERROR_UNSPECIFIED 
        break; 
       case MediaPlayer.MEDIA_ERROR_TIMED_OUT: 
        // handle MEDIA_ERROR_TIMED_OUT 
        break; 

      } 
     } 

編集:701は非常にあなたがsetInfoListener()

https://developer.android.com/reference/android/widget/VideoView.html#setOnInfoListener(android.media.MediaPlayer.OnInfoListener)

と同じパターンに従う情報リスナーを添付する必要がある情報を処理するために、情報やエラーではありませんエラーリスナーこれはあなたが探しているものへの17の最小APIと参照が必要であることを

mVideoView.setOnInfoListener(new MediaPlayer.OnInfoListener() { 
      @Override 
      public boolean onInfo(MediaPlayer mp, int what, int extra) { 

       switch(what){ 
        case MediaPlayer.MEDIA_INFO_BUFFERING_START: 
         // handle info 701 here, MEDIA_INFO_BUFFERING_START corresponds to 701 
         break; 
       } 
       return true; 
      } 
     }); 

注:ここでは一例で、これは有用であった

https://developer.android.com/reference/android/media/MediaPlayer.html#MEDIA_INFO_BUFFERING_START

希望。

関連する問題