public class android.widget.VideoView extends android.view.SurfaceView implements android.widget.MediaController$MediaPlayerControl, android.media.SubtitleController$Anchor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.widget.VideoView
  super_class: android.view.SurfaceView
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "VideoView"

  private static final int STATE_ERROR;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static final int STATE_IDLE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int STATE_PREPARING;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int STATE_PREPARED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int STATE_PLAYING;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int STATE_PAUSED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int STATE_PLAYBACK_COMPLETED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private final java.util.Vector<android.util.Pair<java.io.InputStream, android.media.MediaFormat>> mPendingSubtitleTracks;
    descriptor: Ljava/util/Vector;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Vector<Landroid/util/Pair<Ljava/io/InputStream;Landroid/media/MediaFormat;>;>;

  private android.net.Uri mUri;
    descriptor: Landroid/net/Uri;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, java.lang.String> mHeaders;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private int mCurrentState;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mTargetState;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private android.view.SurfaceHolder mSurfaceHolder;
    descriptor: Landroid/view/SurfaceHolder;
    flags: (0x0002) ACC_PRIVATE

  private android.media.MediaPlayer mMediaPlayer;
    descriptor: Landroid/media/MediaPlayer;
    flags: (0x0002) ACC_PRIVATE

  private int mAudioSession;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mVideoWidth;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mVideoHeight;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mSurfaceWidth;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mSurfaceHeight;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private android.widget.MediaController mMediaController;
    descriptor: Landroid/widget/MediaController;
    flags: (0x0002) ACC_PRIVATE

  private android.media.MediaPlayer$OnCompletionListener mOnCompletionListener;
    descriptor: Landroid/media/MediaPlayer$OnCompletionListener;
    flags: (0x0002) ACC_PRIVATE

  private android.media.MediaPlayer$OnPreparedListener mOnPreparedListener;
    descriptor: Landroid/media/MediaPlayer$OnPreparedListener;
    flags: (0x0002) ACC_PRIVATE

  private int mCurrentBufferPercentage;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private android.media.MediaPlayer$OnErrorListener mOnErrorListener;
    descriptor: Landroid/media/MediaPlayer$OnErrorListener;
    flags: (0x0002) ACC_PRIVATE

  private android.media.MediaPlayer$OnInfoListener mOnInfoListener;
    descriptor: Landroid/media/MediaPlayer$OnInfoListener;
    flags: (0x0002) ACC_PRIVATE

  private int mSeekWhenPrepared;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean mCanPause;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean mCanSeekBack;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean mCanSeekForward;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private android.media.AudioManager mAudioManager;
    descriptor: Landroid/media/AudioManager;
    flags: (0x0002) ACC_PRIVATE

  private int mAudioFocusType;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private android.media.AudioAttributes mAudioAttributes;
    descriptor: Landroid/media/AudioAttributes;
    flags: (0x0002) ACC_PRIVATE

  private android.media.SubtitleTrack$RenderingWidget mSubtitleWidget;
    descriptor: Landroid/media/SubtitleTrack$RenderingWidget;
    flags: (0x0002) ACC_PRIVATE

  private android.media.SubtitleTrack$RenderingWidget$OnChangedListener mSubtitlesChangedListener;
    descriptor: Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;
    flags: (0x0002) ACC_PRIVATE

  android.media.MediaPlayer$OnVideoSizeChangedListener mSizeChangedListener;
    descriptor: Landroid/media/MediaPlayer$OnVideoSizeChangedListener;
    flags: (0x0000) 

  android.media.MediaPlayer$OnPreparedListener mPreparedListener;
    descriptor: Landroid/media/MediaPlayer$OnPreparedListener;
    flags: (0x0000) 

  private android.media.MediaPlayer$OnCompletionListener mCompletionListener;
    descriptor: Landroid/media/MediaPlayer$OnCompletionListener;
    flags: (0x0002) ACC_PRIVATE

  private android.media.MediaPlayer$OnInfoListener mInfoListener;
    descriptor: Landroid/media/MediaPlayer$OnInfoListener;
    flags: (0x0002) ACC_PRIVATE

  private android.media.MediaPlayer$OnErrorListener mErrorListener;
    descriptor: Landroid/media/MediaPlayer$OnErrorListener;
    flags: (0x0002) ACC_PRIVATE

  private android.media.MediaPlayer$OnBufferingUpdateListener mBufferingUpdateListener;
    descriptor: Landroid/media/MediaPlayer$OnBufferingUpdateListener;
    flags: (0x0002) ACC_PRIVATE

  android.view.SurfaceHolder$Callback mSHCallback;
    descriptor: Landroid/view/SurfaceHolder$Callback;
    flags: (0x0000) 

  public void <init>(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // android.content.Context context
         0: .line 137
            aload 0 /* this */
            aload 1 /* context */
            aconst_null
            invokespecial android.widget.VideoView.<init>:(Landroid/content/Context;Landroid/util/AttributeSet;)V
         1: .line 138
            return
        end local 1 // android.content.Context context
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/widget/VideoView;
            0    2     1  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  

  public void <init>(android.content.Context, android.util.AttributeSet);
    descriptor: (Landroid/content/Context;Landroid/util/AttributeSet;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.widget.VideoView this
        start local 1 // android.content.Context context
        start local 2 // android.util.AttributeSet attrs
         0: .line 141
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* attrs */
            iconst_0
            invokespecial android.widget.VideoView.<init>:(Landroid/content/Context;Landroid/util/AttributeSet;I)V
         1: .line 142
            return
        end local 2 // android.util.AttributeSet attrs
        end local 1 // android.content.Context context
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/widget/VideoView;
            0    2     1  context  Landroid/content/Context;
            0    2     2    attrs  Landroid/util/AttributeSet;
    MethodParameters:
         Name  Flags
      context  
      attrs    

  public void <init>(android.content.Context, android.util.AttributeSet, int);
    descriptor: (Landroid/content/Context;Landroid/util/AttributeSet;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // android.widget.VideoView this
        start local 1 // android.content.Context context
        start local 2 // android.util.AttributeSet attrs
        start local 3 // int defStyleAttr
         0: .line 145
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* attrs */
            iload 3 /* defStyleAttr */
            iconst_0
            invokespecial android.widget.VideoView.<init>:(Landroid/content/Context;Landroid/util/AttributeSet;II)V
         1: .line 146
            return
        end local 3 // int defStyleAttr
        end local 2 // android.util.AttributeSet attrs
        end local 1 // android.content.Context context
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Landroid/widget/VideoView;
            0    2     1       context  Landroid/content/Context;
            0    2     2         attrs  Landroid/util/AttributeSet;
            0    2     3  defStyleAttr  I
    MethodParameters:
              Name  Flags
      context       
      attrs         
      defStyleAttr  

  public void <init>(android.content.Context, android.util.AttributeSet, int, int);
    descriptor: (Landroid/content/Context;Landroid/util/AttributeSet;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // android.widget.VideoView this
        start local 1 // android.content.Context context
        start local 2 // android.util.AttributeSet attrs
        start local 3 // int defStyleAttr
        start local 4 // int defStyleRes
         0: .line 149
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* attrs */
            iload 3 /* defStyleAttr */
            iload 4 /* defStyleRes */
            invokespecial android.view.SurfaceView.<init>:(Landroid/content/Context;Landroid/util/AttributeSet;II)V
         1: .line 94
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield android.widget.VideoView.mPendingSubtitleTracks:Ljava/util/Vector;
         2: .line 105
            aload 0 /* this */
            iconst_0
            putfield android.widget.VideoView.mCurrentState:I
         3: .line 106
            aload 0 /* this */
            iconst_0
            putfield android.widget.VideoView.mTargetState:I
         4: .line 109
            aload 0 /* this */
            aconst_null
            putfield android.widget.VideoView.mSurfaceHolder:Landroid/view/SurfaceHolder;
         5: .line 110
            aload 0 /* this */
            aconst_null
            putfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
         6: .line 127
            aload 0 /* this */
            iconst_1
            putfield android.widget.VideoView.mAudioFocusType:I
         7: .line 453
            aload 0 /* this */
         8: .line 454
            new android.widget.VideoView$1
            dup
            aload 0 /* this */
            invokespecial android.widget.VideoView$1.<init>:(Landroid/widget/VideoView;)V
            putfield android.widget.VideoView.mSizeChangedListener:Landroid/media/MediaPlayer$OnVideoSizeChangedListener;
         9: .line 465
            aload 0 /* this */
            new android.widget.VideoView$2
            dup
            aload 0 /* this */
            invokespecial android.widget.VideoView$2.<init>:(Landroid/widget/VideoView;)V
            putfield android.widget.VideoView.mPreparedListener:Landroid/media/MediaPlayer$OnPreparedListener;
        10: .line 527
            aload 0 /* this */
        11: .line 528
            new android.widget.VideoView$3
            dup
            aload 0 /* this */
            invokespecial android.widget.VideoView$3.<init>:(Landroid/widget/VideoView;)V
            putfield android.widget.VideoView.mCompletionListener:Landroid/media/MediaPlayer$OnCompletionListener;
        12: .line 544
            aload 0 /* this */
        13: .line 545
            new android.widget.VideoView$4
            dup
            aload 0 /* this */
            invokespecial android.widget.VideoView$4.<init>:(Landroid/widget/VideoView;)V
            putfield android.widget.VideoView.mInfoListener:Landroid/media/MediaPlayer$OnInfoListener;
        14: .line 554
            aload 0 /* this */
        15: .line 555
            new android.widget.VideoView$5
            dup
            aload 0 /* this */
            invokespecial android.widget.VideoView$5.<init>:(Landroid/widget/VideoView;)V
            putfield android.widget.VideoView.mErrorListener:Landroid/media/MediaPlayer$OnErrorListener;
        16: .line 606
            aload 0 /* this */
        17: .line 607
            new android.widget.VideoView$6
            dup
            aload 0 /* this */
            invokespecial android.widget.VideoView$6.<init>:(Landroid/widget/VideoView;)V
            putfield android.widget.VideoView.mBufferingUpdateListener:Landroid/media/MediaPlayer$OnBufferingUpdateListener;
        18: .line 658
            aload 0 /* this */
            new android.widget.VideoView$7
            dup
            aload 0 /* this */
            invokespecial android.widget.VideoView$7.<init>:(Landroid/widget/VideoView;)V
            putfield android.widget.VideoView.mSHCallback:Landroid/view/SurfaceHolder$Callback;
        19: .line 151
            aload 0 /* this */
            iconst_0
            putfield android.widget.VideoView.mVideoWidth:I
        20: .line 152
            aload 0 /* this */
            iconst_0
            putfield android.widget.VideoView.mVideoHeight:I
        21: .line 154
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.VideoView.mContext:Landroid/content/Context;
            ldc "audio"
            invokevirtual android.content.Context.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast android.media.AudioManager
            putfield android.widget.VideoView.mAudioManager:Landroid/media/AudioManager;
        22: .line 155
            aload 0 /* this */
            new android.media.AudioAttributes$Builder
            dup
            invokespecial android.media.AudioAttributes$Builder.<init>:()V
            iconst_1
            invokevirtual android.media.AudioAttributes$Builder.setUsage:(I)Landroid/media/AudioAttributes$Builder;
        23: .line 156
            iconst_3
            invokevirtual android.media.AudioAttributes$Builder.setContentType:(I)Landroid/media/AudioAttributes$Builder;
            invokevirtual android.media.AudioAttributes$Builder.build:()Landroid/media/AudioAttributes;
        24: .line 155
            putfield android.widget.VideoView.mAudioAttributes:Landroid/media/AudioAttributes;
        25: .line 158
            aload 0 /* this */
            invokevirtual android.widget.VideoView.getHolder:()Landroid/view/SurfaceHolder;
            aload 0 /* this */
            getfield android.widget.VideoView.mSHCallback:Landroid/view/SurfaceHolder$Callback;
            invokeinterface android.view.SurfaceHolder.addCallback:(Landroid/view/SurfaceHolder$Callback;)V
        26: .line 159
            aload 0 /* this */
            invokevirtual android.widget.VideoView.getHolder:()Landroid/view/SurfaceHolder;
            iconst_3
            invokeinterface android.view.SurfaceHolder.setType:(I)V
        27: .line 161
            aload 0 /* this */
            iconst_1
            invokevirtual android.widget.VideoView.setFocusable:(Z)V
        28: .line 162
            aload 0 /* this */
            iconst_1
            invokevirtual android.widget.VideoView.setFocusableInTouchMode:(Z)V
        29: .line 163
            aload 0 /* this */
            invokevirtual android.widget.VideoView.requestFocus:()Z
            pop
        30: .line 165
            aload 0 /* this */
            iconst_0
            putfield android.widget.VideoView.mCurrentState:I
        31: .line 166
            aload 0 /* this */
            iconst_0
            putfield android.widget.VideoView.mTargetState:I
        32: .line 167
            return
        end local 4 // int defStyleRes
        end local 3 // int defStyleAttr
        end local 2 // android.util.AttributeSet attrs
        end local 1 // android.content.Context context
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   33     0          this  Landroid/widget/VideoView;
            0   33     1       context  Landroid/content/Context;
            0   33     2         attrs  Landroid/util/AttributeSet;
            0   33     3  defStyleAttr  I
            0   33     4   defStyleRes  I
    MethodParameters:
              Name  Flags
      context       
      attrs         
      defStyleAttr  
      defStyleRes   

  protected void onMeasure(int, int);
    descriptor: (II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // android.widget.VideoView this
        start local 1 // int widthMeasureSpec
        start local 2 // int heightMeasureSpec
         0: .line 174
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoWidth:I
            iload 1 /* widthMeasureSpec */
            invokestatic android.widget.VideoView.getDefaultSize:(II)I
            istore 3 /* width */
        start local 3 // int width
         1: .line 175
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoHeight:I
            iload 2 /* heightMeasureSpec */
            invokestatic android.widget.VideoView.getDefaultSize:(II)I
            istore 4 /* height */
        start local 4 // int height
         2: .line 176
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoWidth:I
            ifle 36
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoHeight:I
            ifle 36
         3: .line 178
            iload 1 /* widthMeasureSpec */
            invokestatic android.view.View$MeasureSpec.getMode:(I)I
            istore 5 /* widthSpecMode */
        start local 5 // int widthSpecMode
         4: .line 179
            iload 1 /* widthMeasureSpec */
            invokestatic android.view.View$MeasureSpec.getSize:(I)I
            istore 6 /* widthSpecSize */
        start local 6 // int widthSpecSize
         5: .line 180
            iload 2 /* heightMeasureSpec */
            invokestatic android.view.View$MeasureSpec.getMode:(I)I
            istore 7 /* heightSpecMode */
        start local 7 // int heightSpecMode
         6: .line 181
            iload 2 /* heightMeasureSpec */
            invokestatic android.view.View$MeasureSpec.getSize:(I)I
            istore 8 /* heightSpecSize */
        start local 8 // int heightSpecSize
         7: .line 183
            iload 5 /* widthSpecMode */
            ldc 1073741824
            if_icmpne 16
            iload 7 /* heightSpecMode */
            ldc 1073741824
            if_icmpne 16
         8: .line 185
            iload 6 /* widthSpecSize */
            istore 3 /* width */
         9: .line 186
            iload 8 /* heightSpecSize */
            istore 4 /* height */
        10: .line 189
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoWidth:I
            iload 4 /* height */
            imul
            iload 3 /* width */
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoHeight:I
            imul
            if_icmpge 13
        11: .line 191
            iload 4 /* height */
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoWidth:I
            imul
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoHeight:I
            idiv
            istore 3 /* width */
        12: .line 192
            goto 36
      StackMap locals: android.widget.VideoView int int int int int int int int
      StackMap stack:
        13: aload 0 /* this */
            getfield android.widget.VideoView.mVideoWidth:I
            iload 4 /* height */
            imul
            iload 3 /* width */
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoHeight:I
            imul
            if_icmple 36
        14: .line 194
            iload 3 /* width */
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoHeight:I
            imul
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoWidth:I
            idiv
            istore 4 /* height */
        15: .line 196
            goto 36
      StackMap locals:
      StackMap stack:
        16: iload 5 /* widthSpecMode */
            ldc 1073741824
            if_icmpne 22
        17: .line 198
            iload 6 /* widthSpecSize */
            istore 3 /* width */
        18: .line 199
            iload 3 /* width */
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoHeight:I
            imul
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoWidth:I
            idiv
            istore 4 /* height */
        19: .line 200
            iload 7 /* heightSpecMode */
            ldc -2147483648
            if_icmpne 36
            iload 4 /* height */
            iload 8 /* heightSpecSize */
            if_icmple 36
        20: .line 202
            iload 8 /* heightSpecSize */
            istore 4 /* height */
        21: .line 204
            goto 36
      StackMap locals:
      StackMap stack:
        22: iload 7 /* heightSpecMode */
            ldc 1073741824
            if_icmpne 28
        23: .line 206
            iload 8 /* heightSpecSize */
            istore 4 /* height */
        24: .line 207
            iload 4 /* height */
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoWidth:I
            imul
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoHeight:I
            idiv
            istore 3 /* width */
        25: .line 208
            iload 5 /* widthSpecMode */
            ldc -2147483648
            if_icmpne 36
            iload 3 /* width */
            iload 6 /* widthSpecSize */
            if_icmple 36
        26: .line 210
            iload 6 /* widthSpecSize */
            istore 3 /* width */
        27: .line 212
            goto 36
        28: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoWidth:I
            istore 3 /* width */
        29: .line 215
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoHeight:I
            istore 4 /* height */
        30: .line 216
            iload 7 /* heightSpecMode */
            ldc -2147483648
            if_icmpne 33
            iload 4 /* height */
            iload 8 /* heightSpecSize */
            if_icmple 33
        31: .line 218
            iload 8 /* heightSpecSize */
            istore 4 /* height */
        32: .line 219
            iload 4 /* height */
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoWidth:I
            imul
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoHeight:I
            idiv
            istore 3 /* width */
        33: .line 221
      StackMap locals:
      StackMap stack:
            iload 5 /* widthSpecMode */
            ldc -2147483648
            if_icmpne 36
            iload 3 /* width */
            iload 6 /* widthSpecSize */
            if_icmple 36
        34: .line 223
            iload 6 /* widthSpecSize */
            istore 3 /* width */
        35: .line 224
            iload 3 /* width */
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoHeight:I
            imul
            aload 0 /* this */
            getfield android.widget.VideoView.mVideoWidth:I
            idiv
            istore 4 /* height */
        end local 8 // int heightSpecSize
        end local 7 // int heightSpecMode
        end local 6 // int widthSpecSize
        end local 5 // int widthSpecMode
        36: .line 230
      StackMap locals: android.widget.VideoView int int int int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* width */
            iload 4 /* height */
            invokevirtual android.widget.VideoView.setMeasuredDimension:(II)V
        37: .line 231
            return
        end local 4 // int height
        end local 3 // int width
        end local 2 // int heightMeasureSpec
        end local 1 // int widthMeasureSpec
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   38     0               this  Landroid/widget/VideoView;
            0   38     1   widthMeasureSpec  I
            0   38     2  heightMeasureSpec  I
            1   38     3              width  I
            2   38     4             height  I
            4   36     5      widthSpecMode  I
            5   36     6      widthSpecSize  I
            6   36     7     heightSpecMode  I
            7   36     8     heightSpecSize  I
    MethodParameters:
                   Name  Flags
      widthMeasureSpec   
      heightMeasureSpec  

  public java.lang.CharSequence getAccessibilityClassName();
    descriptor: ()Ljava/lang/CharSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 235
            ldc Landroid/widget/VideoView;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            areturn
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/VideoView;

  public int resolveAdjustedSize(int, int);
    descriptor: (II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.widget.VideoView this
        start local 1 // int desiredSize
        start local 2 // int measureSpec
         0: .line 239
            iload 1 /* desiredSize */
            iload 2 /* measureSpec */
            invokestatic android.widget.VideoView.getDefaultSize:(II)I
            ireturn
        end local 2 // int measureSpec
        end local 1 // int desiredSize
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Landroid/widget/VideoView;
            0    1     1  desiredSize  I
            0    1     2  measureSpec  I
    MethodParameters:
             Name  Flags
      desiredSize  
      measureSpec  

  public void setVideoPath(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // java.lang.String path
         0: .line 248
            aload 0 /* this */
            aload 1 /* path */
            invokestatic android.net.Uri.parse:(Ljava/lang/String;)Landroid/net/Uri;
            invokevirtual android.widget.VideoView.setVideoURI:(Landroid/net/Uri;)V
         1: .line 249
            return
        end local 1 // java.lang.String path
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/VideoView;
            0    2     1  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  public void setVideoURI(android.net.Uri);
    descriptor: (Landroid/net/Uri;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // android.net.Uri uri
         0: .line 257
            aload 0 /* this */
            aload 1 /* uri */
            aconst_null
            invokevirtual android.widget.VideoView.setVideoURI:(Landroid/net/Uri;Ljava/util/Map;)V
         1: .line 258
            return
        end local 1 // android.net.Uri uri
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/VideoView;
            0    2     1   uri  Landroid/net/Uri;
    MethodParameters:
      Name  Flags
      uri   

  public void setVideoURI(android.net.Uri, java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Landroid/net/Uri;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.widget.VideoView this
        start local 1 // android.net.Uri uri
        start local 2 // java.util.Map headers
         0: .line 271
            aload 0 /* this */
            aload 1 /* uri */
            putfield android.widget.VideoView.mUri:Landroid/net/Uri;
         1: .line 272
            aload 0 /* this */
            aload 2 /* headers */
            putfield android.widget.VideoView.mHeaders:Ljava/util/Map;
         2: .line 273
            aload 0 /* this */
            iconst_0
            putfield android.widget.VideoView.mSeekWhenPrepared:I
         3: .line 274
            aload 0 /* this */
            invokevirtual android.widget.VideoView.openVideo:()V
         4: .line 275
            aload 0 /* this */
            invokevirtual android.widget.VideoView.requestLayout:()V
         5: .line 276
            aload 0 /* this */
            invokevirtual android.widget.VideoView.invalidate:()V
         6: .line 277
            return
        end local 2 // java.util.Map headers
        end local 1 // android.net.Uri uri
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Landroid/widget/VideoView;
            0    7     1      uri  Landroid/net/Uri;
            0    7     2  headers  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Landroid/net/Uri;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
         Name  Flags
      uri      
      headers  

  public void setAudioFocusRequest(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // int focusGain
         0: .line 293
            iload 1 /* focusGain */
            ifeq 6
         1: .line 294
            iload 1 /* focusGain */
            iconst_1
            if_icmpeq 6
         2: .line 295
            iload 1 /* focusGain */
            iconst_2
            if_icmpeq 6
         3: .line 296
            iload 1 /* focusGain */
            iconst_3
            if_icmpeq 6
         4: .line 297
            iload 1 /* focusGain */
            iconst_4
            if_icmpeq 6
         5: .line 298
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Illegal audio focus type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* focusGain */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* focusGain */
            putfield android.widget.VideoView.mAudioFocusType:I
         7: .line 301
            return
        end local 1 // int focusGain
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Landroid/widget/VideoView;
            0    8     1  focusGain  I
    MethodParameters:
           Name  Flags
      focusGain  

  public void setAudioAttributes(android.media.AudioAttributes);
    descriptor: (Landroid/media/AudioAttributes;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // android.media.AudioAttributes attributes
         0: .line 308
            aload 1 /* attributes */
            ifnonnull 2
         1: .line 309
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null AudioAttributes"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 311
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* attributes */
            putfield android.widget.VideoView.mAudioAttributes:Landroid/media/AudioAttributes;
         3: .line 312
            return
        end local 1 // android.media.AudioAttributes attributes
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Landroid/widget/VideoView;
            0    4     1  attributes  Landroid/media/AudioAttributes;
    MethodParameters:
            Name  Flags
      attributes  

  public void addSubtitleSource(java.io.InputStream, android.media.MediaFormat);
    descriptor: (Ljava/io/InputStream;Landroid/media/MediaFormat;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.widget.VideoView this
        start local 1 // java.io.InputStream is
        start local 2 // android.media.MediaFormat format
         0: .line 337
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            ifnonnull 3
         1: .line 338
            aload 0 /* this */
            getfield android.widget.VideoView.mPendingSubtitleTracks:Ljava/util/Vector;
            aload 1 /* is */
            aload 2 /* format */
            invokestatic android.util.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
         2: .line 339
            goto 9
         3: .line 341
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            aload 1 /* is */
            aload 2 /* format */
            invokevirtual android.media.MediaPlayer.addSubtitleSource:(Ljava/io/InputStream;Landroid/media/MediaFormat;)V
         4: .line 342
            goto 9
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
         5: pop
         6: .line 343
            aload 0 /* this */
            getfield android.widget.VideoView.mInfoListener:Landroid/media/MediaPlayer$OnInfoListener;
         7: .line 344
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            sipush 901
            iconst_0
         8: .line 343
            invokeinterface android.media.MediaPlayer$OnInfoListener.onInfo:(Landroid/media/MediaPlayer;II)Z
            pop
         9: .line 347
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.MediaFormat format
        end local 1 // java.io.InputStream is
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Landroid/widget/VideoView;
            0   10     1      is  Ljava/io/InputStream;
            0   10     2  format  Landroid/media/MediaFormat;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.IllegalStateException
    MethodParameters:
        Name  Flags
      is      
      format  

  public void stopPlayback();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 350
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            ifnull 7
         1: .line 351
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.stop:()V
         2: .line 352
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.release:()V
         3: .line 353
            aload 0 /* this */
            aconst_null
            putfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
         4: .line 354
            aload 0 /* this */
            iconst_0
            putfield android.widget.VideoView.mCurrentState:I
         5: .line 355
            aload 0 /* this */
            iconst_0
            putfield android.widget.VideoView.mTargetState:I
         6: .line 356
            aload 0 /* this */
            getfield android.widget.VideoView.mAudioManager:Landroid/media/AudioManager;
            aconst_null
            invokevirtual android.media.AudioManager.abandonAudioFocus:(Landroid/media/AudioManager$OnAudioFocusChangeListener;)I
            pop
         7: .line 358
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/widget/VideoView;

  private void openVideo();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 361
            aload 0 /* this */
            getfield android.widget.VideoView.mUri:Landroid/net/Uri;
            ifnull 1
            aload 0 /* this */
            getfield android.widget.VideoView.mSurfaceHolder:Landroid/view/SurfaceHolder;
            ifnonnull 2
         1: .line 363
      StackMap locals:
      StackMap stack:
            return
         2: .line 367
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual android.widget.VideoView.release:(Z)V
         3: .line 369
            aload 0 /* this */
            getfield android.widget.VideoView.mAudioFocusType:I
            ifeq 5
         4: .line 371
            aload 0 /* this */
            getfield android.widget.VideoView.mAudioManager:Landroid/media/AudioManager;
            aconst_null
            aload 0 /* this */
            getfield android.widget.VideoView.mAudioAttributes:Landroid/media/AudioAttributes;
            aload 0 /* this */
            getfield android.widget.VideoView.mAudioFocusType:I
            iconst_0
            invokevirtual android.media.AudioManager.requestAudioFocus:(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;II)I
            pop
         5: .line 375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new android.media.MediaPlayer
            dup
            invokespecial android.media.MediaPlayer.<init>:()V
            putfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
         6: .line 378
            aload 0 /* this */
            invokevirtual android.widget.VideoView.getContext:()Landroid/content/Context;
            astore 1 /* context */
        start local 1 // android.content.Context context
         7: .line 379
            new android.media.SubtitleController
            dup
         8: .line 380
            aload 1 /* context */
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.getMediaTimeProvider:()Landroid/media/MediaTimeProvider;
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
         9: .line 379
            invokespecial android.media.SubtitleController.<init>:(Landroid/content/Context;Landroid/media/MediaTimeProvider;Landroid/media/SubtitleController$Listener;)V
            astore 2 /* controller */
        start local 2 // android.media.SubtitleController controller
        10: .line 381
            aload 2 /* controller */
            new android.media.WebVttRenderer
            dup
            aload 1 /* context */
            invokespecial android.media.WebVttRenderer.<init>:(Landroid/content/Context;)V
            invokevirtual android.media.SubtitleController.registerRenderer:(Landroid/media/SubtitleController$Renderer;)V
        11: .line 382
            aload 2 /* controller */
            new android.media.TtmlRenderer
            dup
            aload 1 /* context */
            invokespecial android.media.TtmlRenderer.<init>:(Landroid/content/Context;)V
            invokevirtual android.media.SubtitleController.registerRenderer:(Landroid/media/SubtitleController$Renderer;)V
        12: .line 383
            aload 2 /* controller */
            new android.media.Cea708CaptionRenderer
            dup
            aload 1 /* context */
            invokespecial android.media.Cea708CaptionRenderer.<init>:(Landroid/content/Context;)V
            invokevirtual android.media.SubtitleController.registerRenderer:(Landroid/media/SubtitleController$Renderer;)V
        13: .line 384
            aload 2 /* controller */
            new android.media.ClosedCaptionRenderer
            dup
            aload 1 /* context */
            invokespecial android.media.ClosedCaptionRenderer.<init>:(Landroid/content/Context;)V
            invokevirtual android.media.SubtitleController.registerRenderer:(Landroid/media/SubtitleController$Renderer;)V
        14: .line 385
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            aload 2 /* controller */
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.setSubtitleAnchor:(Landroid/media/SubtitleController;Landroid/media/SubtitleController$Anchor;)V
        15: .line 387
            aload 0 /* this */
            getfield android.widget.VideoView.mAudioSession:I
            ifeq 18
        16: .line 388
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            aload 0 /* this */
            getfield android.widget.VideoView.mAudioSession:I
            invokevirtual android.media.MediaPlayer.setAudioSessionId:(I)V
        17: .line 389
            goto 19
        18: .line 390
      StackMap locals: android.content.Context android.media.SubtitleController
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.getAudioSessionId:()I
            putfield android.widget.VideoView.mAudioSession:I
        19: .line 392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            aload 0 /* this */
            getfield android.widget.VideoView.mPreparedListener:Landroid/media/MediaPlayer$OnPreparedListener;
            invokevirtual android.media.MediaPlayer.setOnPreparedListener:(Landroid/media/MediaPlayer$OnPreparedListener;)V
        20: .line 393
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            aload 0 /* this */
            getfield android.widget.VideoView.mSizeChangedListener:Landroid/media/MediaPlayer$OnVideoSizeChangedListener;
            invokevirtual android.media.MediaPlayer.setOnVideoSizeChangedListener:(Landroid/media/MediaPlayer$OnVideoSizeChangedListener;)V
        21: .line 394
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            aload 0 /* this */
            getfield android.widget.VideoView.mCompletionListener:Landroid/media/MediaPlayer$OnCompletionListener;
            invokevirtual android.media.MediaPlayer.setOnCompletionListener:(Landroid/media/MediaPlayer$OnCompletionListener;)V
        22: .line 395
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            aload 0 /* this */
            getfield android.widget.VideoView.mErrorListener:Landroid/media/MediaPlayer$OnErrorListener;
            invokevirtual android.media.MediaPlayer.setOnErrorListener:(Landroid/media/MediaPlayer$OnErrorListener;)V
        23: .line 396
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            aload 0 /* this */
            getfield android.widget.VideoView.mInfoListener:Landroid/media/MediaPlayer$OnInfoListener;
            invokevirtual android.media.MediaPlayer.setOnInfoListener:(Landroid/media/MediaPlayer$OnInfoListener;)V
        24: .line 397
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            aload 0 /* this */
            getfield android.widget.VideoView.mBufferingUpdateListener:Landroid/media/MediaPlayer$OnBufferingUpdateListener;
            invokevirtual android.media.MediaPlayer.setOnBufferingUpdateListener:(Landroid/media/MediaPlayer$OnBufferingUpdateListener;)V
        25: .line 398
            aload 0 /* this */
            iconst_0
            putfield android.widget.VideoView.mCurrentBufferPercentage:I
        26: .line 399
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            aload 0 /* this */
            getfield android.widget.VideoView.mContext:Landroid/content/Context;
            aload 0 /* this */
            getfield android.widget.VideoView.mUri:Landroid/net/Uri;
            aload 0 /* this */
            getfield android.widget.VideoView.mHeaders:Ljava/util/Map;
            invokevirtual android.media.MediaPlayer.setDataSource:(Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map;)V
        27: .line 400
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            aload 0 /* this */
            getfield android.widget.VideoView.mSurfaceHolder:Landroid/view/SurfaceHolder;
            invokevirtual android.media.MediaPlayer.setDisplay:(Landroid/view/SurfaceHolder;)V
        28: .line 401
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            aload 0 /* this */
            getfield android.widget.VideoView.mAudioAttributes:Landroid/media/AudioAttributes;
            invokevirtual android.media.MediaPlayer.setAudioAttributes:(Landroid/media/AudioAttributes;)V
        29: .line 402
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            iconst_1
            invokevirtual android.media.MediaPlayer.setScreenOnWhilePlaying:(Z)V
        30: .line 403
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.prepareAsync:()V
        31: .line 405
            aload 0 /* this */
            getfield android.widget.VideoView.mPendingSubtitleTracks:Ljava/util/Vector;
            invokevirtual java.util.Vector.iterator:()Ljava/util/Iterator;
            astore 4
            goto 39
      StackMap locals: android.widget.VideoView android.content.Context android.media.SubtitleController top java.util.Iterator
      StackMap stack:
        32: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.util.Pair
            astore 3 /* pending */
        start local 3 // android.util.Pair pending
        33: .line 407
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            aload 3 /* pending */
            getfield android.util.Pair.first:Ljava/lang/Object;
            checkcast java.io.InputStream
            aload 3 /* pending */
            getfield android.util.Pair.second:Ljava/lang/Object;
            checkcast android.media.MediaFormat
            invokevirtual android.media.MediaPlayer.addSubtitleSource:(Ljava/io/InputStream;Landroid/media/MediaFormat;)V
        34: .line 408
            goto 39
      StackMap locals: android.widget.VideoView android.content.Context android.media.SubtitleController android.util.Pair java.util.Iterator
      StackMap stack: java.lang.IllegalStateException
        35: pop
        36: .line 409
            aload 0 /* this */
            getfield android.widget.VideoView.mInfoListener:Landroid/media/MediaPlayer$OnInfoListener;
        37: .line 410
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            sipush 901
            iconst_0
        38: .line 409
            invokeinterface android.media.MediaPlayer$OnInfoListener.onInfo:(Landroid/media/MediaPlayer;II)Z
            pop
        end local 3 // android.util.Pair pending
        39: .line 405
      StackMap locals: android.widget.VideoView android.content.Context android.media.SubtitleController top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 32
        40: .line 416
            aload 0 /* this */
            iconst_1
            putfield android.widget.VideoView.mCurrentState:I
        41: .line 417
            aload 0 /* this */
            invokevirtual android.widget.VideoView.attachMediaController:()V
        end local 2 // android.media.SubtitleController controller
        end local 1 // android.content.Context context
        42: .line 418
            goto 60
      StackMap locals: android.widget.VideoView
      StackMap stack: java.io.IOException
        43: astore 1 /* ex */
        start local 1 // java.io.IOException ex
        44: .line 419
            ldc "VideoView"
            new java.lang.StringBuilder
            dup
            ldc "Unable to open content: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.widget.VideoView.mUri:Landroid/net/Uri;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* ex */
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        45: .line 420
            aload 0 /* this */
            iconst_m1
            putfield android.widget.VideoView.mCurrentState:I
        46: .line 421
            aload 0 /* this */
            iconst_m1
            putfield android.widget.VideoView.mTargetState:I
        47: .line 422
            aload 0 /* this */
            getfield android.widget.VideoView.mErrorListener:Landroid/media/MediaPlayer$OnErrorListener;
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            iconst_1
            iconst_0
            invokeinterface android.media.MediaPlayer$OnErrorListener.onError:(Landroid/media/MediaPlayer;II)Z
            pop
        48: .line 431
            aload 0 /* this */
            getfield android.widget.VideoView.mPendingSubtitleTracks:Ljava/util/Vector;
            invokevirtual java.util.Vector.clear:()V
        49: .line 423
            return
        end local 1 // java.io.IOException ex
        50: .line 424
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 1 /* ex */
        start local 1 // java.lang.IllegalArgumentException ex
        51: .line 425
            ldc "VideoView"
            new java.lang.StringBuilder
            dup
            ldc "Unable to open content: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.widget.VideoView.mUri:Landroid/net/Uri;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* ex */
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        52: .line 426
            aload 0 /* this */
            iconst_m1
            putfield android.widget.VideoView.mCurrentState:I
        53: .line 427
            aload 0 /* this */
            iconst_m1
            putfield android.widget.VideoView.mTargetState:I
        54: .line 428
            aload 0 /* this */
            getfield android.widget.VideoView.mErrorListener:Landroid/media/MediaPlayer$OnErrorListener;
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            iconst_1
            iconst_0
            invokeinterface android.media.MediaPlayer$OnErrorListener.onError:(Landroid/media/MediaPlayer;II)Z
            pop
        55: .line 431
            aload 0 /* this */
            getfield android.widget.VideoView.mPendingSubtitleTracks:Ljava/util/Vector;
            invokevirtual java.util.Vector.clear:()V
        56: .line 429
            return
        end local 1 // java.lang.IllegalArgumentException ex
        57: .line 430
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        58: .line 431
            aload 0 /* this */
            getfield android.widget.VideoView.mPendingSubtitleTracks:Ljava/util/Vector;
            invokevirtual java.util.Vector.clear:()V
        59: .line 432
            aload 5
            athrow
        60: .line 431
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.VideoView.mPendingSubtitleTracks:Ljava/util/Vector;
            invokevirtual java.util.Vector.clear:()V
        61: .line 433
            return
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   62     0        this  Landroid/widget/VideoView;
            7   42     1     context  Landroid/content/Context;
           10   42     2  controller  Landroid/media/SubtitleController;
           33   39     3     pending  Landroid/util/Pair<Ljava/io/InputStream;Landroid/media/MediaFormat;>;
           44   50     1          ex  Ljava/io/IOException;
           51   57     1          ex  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
          33    34      35  Class java.lang.IllegalStateException
           5    42      43  Class java.io.IOException
           5    42      50  Class java.lang.IllegalArgumentException
           5    48      57  any
          50    55      57  any

  public void setMediaController(android.widget.MediaController);
    descriptor: (Landroid/widget/MediaController;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // android.widget.MediaController controller
         0: .line 436
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            ifnull 2
         1: .line 437
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            invokevirtual android.widget.MediaController.hide:()V
         2: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* controller */
            putfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
         3: .line 440
            aload 0 /* this */
            invokevirtual android.widget.VideoView.attachMediaController:()V
         4: .line 441
            return
        end local 1 // android.widget.MediaController controller
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/widget/VideoView;
            0    5     1  controller  Landroid/widget/MediaController;
    MethodParameters:
            Name  Flags
      controller  

  private void attachMediaController();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 444
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            ifnull 8
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            ifnull 8
         1: .line 445
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            aload 0 /* this */
            invokevirtual android.widget.MediaController.setMediaPlayer:(Landroid/widget/MediaController$MediaPlayerControl;)V
         2: .line 446
            aload 0 /* this */
            invokevirtual android.widget.VideoView.getParent:()Landroid/view/ViewParent;
            instanceof android.view.View
            ifeq 4
         3: .line 447
            aload 0 /* this */
            invokevirtual android.widget.VideoView.getParent:()Landroid/view/ViewParent;
            checkcast android.view.View
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
         5: .line 446
      StackMap locals:
      StackMap stack: android.view.View
            astore 1 /* anchorView */
        start local 1 // android.view.View anchorView
         6: .line 448
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            aload 1 /* anchorView */
            invokevirtual android.widget.MediaController.setAnchorView:(Landroid/view/View;)V
         7: .line 449
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            aload 0 /* this */
            invokevirtual android.widget.VideoView.isInPlaybackState:()Z
            invokevirtual android.widget.MediaController.setEnabled:(Z)V
        end local 1 // android.view.View anchorView
         8: .line 451
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Landroid/widget/VideoView;
            6    8     1  anchorView  Landroid/view/View;

  public void setOnPreparedListener(android.media.MediaPlayer$OnPreparedListener);
    descriptor: (Landroid/media/MediaPlayer$OnPreparedListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // android.media.MediaPlayer$OnPreparedListener l
         0: .line 621
            aload 0 /* this */
            aload 1 /* l */
            putfield android.widget.VideoView.mOnPreparedListener:Landroid/media/MediaPlayer$OnPreparedListener;
         1: .line 622
            return
        end local 1 // android.media.MediaPlayer$OnPreparedListener l
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/VideoView;
            0    2     1     l  Landroid/media/MediaPlayer$OnPreparedListener;
    MethodParameters:
      Name  Flags
      l     

  public void setOnCompletionListener(android.media.MediaPlayer$OnCompletionListener);
    descriptor: (Landroid/media/MediaPlayer$OnCompletionListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // android.media.MediaPlayer$OnCompletionListener l
         0: .line 632
            aload 0 /* this */
            aload 1 /* l */
            putfield android.widget.VideoView.mOnCompletionListener:Landroid/media/MediaPlayer$OnCompletionListener;
         1: .line 633
            return
        end local 1 // android.media.MediaPlayer$OnCompletionListener l
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/VideoView;
            0    2     1     l  Landroid/media/MediaPlayer$OnCompletionListener;
    MethodParameters:
      Name  Flags
      l     

  public void setOnErrorListener(android.media.MediaPlayer$OnErrorListener);
    descriptor: (Landroid/media/MediaPlayer$OnErrorListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // android.media.MediaPlayer$OnErrorListener l
         0: .line 645
            aload 0 /* this */
            aload 1 /* l */
            putfield android.widget.VideoView.mOnErrorListener:Landroid/media/MediaPlayer$OnErrorListener;
         1: .line 646
            return
        end local 1 // android.media.MediaPlayer$OnErrorListener l
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/VideoView;
            0    2     1     l  Landroid/media/MediaPlayer$OnErrorListener;
    MethodParameters:
      Name  Flags
      l     

  public void setOnInfoListener(android.media.MediaPlayer$OnInfoListener);
    descriptor: (Landroid/media/MediaPlayer$OnInfoListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // android.media.MediaPlayer$OnInfoListener l
         0: .line 655
            aload 0 /* this */
            aload 1 /* l */
            putfield android.widget.VideoView.mOnInfoListener:Landroid/media/MediaPlayer$OnInfoListener;
         1: .line 656
            return
        end local 1 // android.media.MediaPlayer$OnInfoListener l
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/VideoView;
            0    2     1     l  Landroid/media/MediaPlayer$OnInfoListener;
    MethodParameters:
      Name  Flags
      l     

  private void release(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // boolean cleartargetstate
         0: .line 694
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            ifnull 10
         1: .line 695
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.reset:()V
         2: .line 696
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.release:()V
         3: .line 697
            aload 0 /* this */
            aconst_null
            putfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
         4: .line 698
            aload 0 /* this */
            getfield android.widget.VideoView.mPendingSubtitleTracks:Ljava/util/Vector;
            invokevirtual java.util.Vector.clear:()V
         5: .line 699
            aload 0 /* this */
            iconst_0
            putfield android.widget.VideoView.mCurrentState:I
         6: .line 700
            iload 1 /* cleartargetstate */
            ifeq 8
         7: .line 701
            aload 0 /* this */
            iconst_0
            putfield android.widget.VideoView.mTargetState:I
         8: .line 703
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.VideoView.mAudioFocusType:I
            ifeq 10
         9: .line 704
            aload 0 /* this */
            getfield android.widget.VideoView.mAudioManager:Landroid/media/AudioManager;
            aconst_null
            invokevirtual android.media.AudioManager.abandonAudioFocus:(Landroid/media/AudioManager$OnAudioFocusChangeListener;)I
            pop
        10: .line 707
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean cleartargetstate
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Landroid/widget/VideoView;
            0   11     1  cleartargetstate  Z
    MethodParameters:
                  Name  Flags
      cleartargetstate  

  public boolean onTouchEvent(android.view.MotionEvent);
    descriptor: (Landroid/view/MotionEvent;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // android.view.MotionEvent ev
         0: .line 711
            aload 1 /* ev */
            invokevirtual android.view.MotionEvent.getAction:()I
            ifne 3
         1: .line 712
            aload 0 /* this */
            invokevirtual android.widget.VideoView.isInPlaybackState:()Z
            ifeq 3
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            ifnull 3
         2: .line 713
            aload 0 /* this */
            invokevirtual android.widget.VideoView.toggleMediaControlsVisiblity:()V
         3: .line 715
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ev */
            invokespecial android.view.SurfaceView.onTouchEvent:(Landroid/view/MotionEvent;)Z
            ireturn
        end local 1 // android.view.MotionEvent ev
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/widget/VideoView;
            0    4     1    ev  Landroid/view/MotionEvent;
    MethodParameters:
      Name  Flags
      ev    

  public boolean onTrackballEvent(android.view.MotionEvent);
    descriptor: (Landroid/view/MotionEvent;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // android.view.MotionEvent ev
         0: .line 720
            aload 1 /* ev */
            invokevirtual android.view.MotionEvent.getAction:()I
            ifne 3
         1: .line 721
            aload 0 /* this */
            invokevirtual android.widget.VideoView.isInPlaybackState:()Z
            ifeq 3
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            ifnull 3
         2: .line 722
            aload 0 /* this */
            invokevirtual android.widget.VideoView.toggleMediaControlsVisiblity:()V
         3: .line 724
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ev */
            invokespecial android.view.SurfaceView.onTrackballEvent:(Landroid/view/MotionEvent;)Z
            ireturn
        end local 1 // android.view.MotionEvent ev
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/widget/VideoView;
            0    4     1    ev  Landroid/view/MotionEvent;
    MethodParameters:
      Name  Flags
      ev    

  public boolean onKeyDown(int, android.view.KeyEvent);
    descriptor: (ILandroid/view/KeyEvent;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.widget.VideoView this
        start local 1 // int keyCode
        start local 2 // android.view.KeyEvent event
         0: .line 730
            iload 1 /* keyCode */
            iconst_4
            if_icmpeq 8
         1: .line 731
            iload 1 /* keyCode */
            bipush 24
            if_icmpeq 8
         2: .line 732
            iload 1 /* keyCode */
            bipush 25
            if_icmpeq 8
         3: .line 733
            iload 1 /* keyCode */
            sipush 164
            if_icmpeq 8
         4: .line 734
            iload 1 /* keyCode */
            bipush 82
            if_icmpeq 8
         5: .line 735
            iload 1 /* keyCode */
            iconst_5
            if_icmpeq 8
         6: .line 736
            iload 1 /* keyCode */
            bipush 6
            if_icmpeq 8
         7: .line 730
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 3 /* isKeyCodeSupported */
        start local 3 // boolean isKeyCodeSupported
        10: .line 737
            aload 0 /* this */
            invokevirtual android.widget.VideoView.isInPlaybackState:()Z
            ifeq 32
            iload 3 /* isKeyCodeSupported */
            ifeq 32
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            ifnull 32
        11: .line 738
            iload 1 /* keyCode */
            bipush 79
            if_icmpeq 13
        12: .line 739
            iload 1 /* keyCode */
            bipush 85
            if_icmpne 20
        13: .line 740
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.isPlaying:()Z
            ifeq 17
        14: .line 741
            aload 0 /* this */
            invokevirtual android.widget.VideoView.pause:()V
        15: .line 742
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            invokevirtual android.widget.MediaController.show:()V
        16: .line 743
            goto 19
        17: .line 744
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.VideoView.start:()V
        18: .line 745
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            invokevirtual android.widget.MediaController.hide:()V
        19: .line 747
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        20: .line 748
      StackMap locals:
      StackMap stack:
            iload 1 /* keyCode */
            bipush 126
            if_icmpne 25
        21: .line 749
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.isPlaying:()Z
            ifne 24
        22: .line 750
            aload 0 /* this */
            invokevirtual android.widget.VideoView.start:()V
        23: .line 751
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            invokevirtual android.widget.MediaController.hide:()V
        24: .line 753
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        25: .line 754
      StackMap locals:
      StackMap stack:
            iload 1 /* keyCode */
            bipush 86
            if_icmpeq 27
        26: .line 755
            iload 1 /* keyCode */
            bipush 127
            if_icmpne 31
        27: .line 756
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.isPlaying:()Z
            ifeq 30
        28: .line 757
            aload 0 /* this */
            invokevirtual android.widget.VideoView.pause:()V
        29: .line 758
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            invokevirtual android.widget.MediaController.show:()V
        30: .line 760
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        31: .line 762
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.VideoView.toggleMediaControlsVisiblity:()V
        32: .line 766
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* keyCode */
            aload 2 /* event */
            invokespecial android.view.SurfaceView.onKeyDown:(ILandroid/view/KeyEvent;)Z
            ireturn
        end local 3 // boolean isKeyCodeSupported
        end local 2 // android.view.KeyEvent event
        end local 1 // int keyCode
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   33     0                this  Landroid/widget/VideoView;
            0   33     1             keyCode  I
            0   33     2               event  Landroid/view/KeyEvent;
           10   33     3  isKeyCodeSupported  Z
    MethodParameters:
         Name  Flags
      keyCode  
      event    

  private void toggleMediaControlsVisiblity();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 770
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            invokevirtual android.widget.MediaController.isShowing:()Z
            ifeq 3
         1: .line 771
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            invokevirtual android.widget.MediaController.hide:()V
         2: .line 772
            goto 4
         3: .line 773
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaController:Landroid/widget/MediaController;
            invokevirtual android.widget.MediaController.show:()V
         4: .line 775
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/widget/VideoView;

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 779
            aload 0 /* this */
            invokevirtual android.widget.VideoView.isInPlaybackState:()Z
            ifeq 3
         1: .line 780
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.start:()V
         2: .line 781
            aload 0 /* this */
            iconst_3
            putfield android.widget.VideoView.mCurrentState:I
         3: .line 783
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield android.widget.VideoView.mTargetState:I
         4: .line 784
            return
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/widget/VideoView;

  public void pause();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 788
            aload 0 /* this */
            invokevirtual android.widget.VideoView.isInPlaybackState:()Z
            ifeq 4
         1: .line 789
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.isPlaying:()Z
            ifeq 4
         2: .line 790
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.pause:()V
         3: .line 791
            aload 0 /* this */
            iconst_4
            putfield android.widget.VideoView.mCurrentState:I
         4: .line 794
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_4
            putfield android.widget.VideoView.mTargetState:I
         5: .line 795
            return
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/widget/VideoView;

  public void suspend();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 798
            aload 0 /* this */
            iconst_0
            invokevirtual android.widget.VideoView.release:(Z)V
         1: .line 799
            return
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/VideoView;

  public void resume();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 802
            aload 0 /* this */
            invokevirtual android.widget.VideoView.openVideo:()V
         1: .line 803
            return
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/VideoView;

  public int getDuration();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 807
            aload 0 /* this */
            invokevirtual android.widget.VideoView.isInPlaybackState:()Z
            ifeq 2
         1: .line 808
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.getDuration:()I
            ireturn
         2: .line 811
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/VideoView;

  public int getCurrentPosition();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 816
            aload 0 /* this */
            invokevirtual android.widget.VideoView.isInPlaybackState:()Z
            ifeq 2
         1: .line 817
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.getCurrentPosition:()I
            ireturn
         2: .line 819
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/VideoView;

  public void seekTo(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // int msec
         0: .line 824
            aload 0 /* this */
            invokevirtual android.widget.VideoView.isInPlaybackState:()Z
            ifeq 4
         1: .line 825
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            iload 1 /* msec */
            invokevirtual android.media.MediaPlayer.seekTo:(I)V
         2: .line 826
            aload 0 /* this */
            iconst_0
            putfield android.widget.VideoView.mSeekWhenPrepared:I
         3: .line 827
            goto 5
         4: .line 828
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* msec */
            putfield android.widget.VideoView.mSeekWhenPrepared:I
         5: .line 830
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int msec
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/widget/VideoView;
            0    6     1  msec  I
    MethodParameters:
      Name  Flags
      msec  

  public boolean isPlaying();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 834
            aload 0 /* this */
            invokevirtual android.widget.VideoView.isInPlaybackState:()Z
            ifeq 1
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            invokevirtual android.media.MediaPlayer.isPlaying:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/VideoView;

  public int getBufferPercentage();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 839
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            ifnull 2
         1: .line 840
            aload 0 /* this */
            getfield android.widget.VideoView.mCurrentBufferPercentage:I
            ireturn
         2: .line 842
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/VideoView;

  private boolean isInPlaybackState();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 846
            aload 0 /* this */
            getfield android.widget.VideoView.mMediaPlayer:Landroid/media/MediaPlayer;
            ifnull 5
         1: .line 847
            aload 0 /* this */
            getfield android.widget.VideoView.mCurrentState:I
            iconst_m1
            if_icmpeq 5
         2: .line 848
            aload 0 /* this */
            getfield android.widget.VideoView.mCurrentState:I
            ifeq 5
         3: .line 849
            aload 0 /* this */
            getfield android.widget.VideoView.mCurrentState:I
            iconst_1
            if_icmpeq 5
         4: .line 846
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/widget/VideoView;

  public boolean canPause();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 854
            aload 0 /* this */
            getfield android.widget.VideoView.mCanPause:Z
            ireturn
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/VideoView;

  public boolean canSeekBackward();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 859
            aload 0 /* this */
            getfield android.widget.VideoView.mCanSeekBack:Z
            ireturn
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/VideoView;

  public boolean canSeekForward();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 864
            aload 0 /* this */
            getfield android.widget.VideoView.mCanSeekForward:Z
            ireturn
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/VideoView;

  public int getAudioSessionId();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 869
            aload 0 /* this */
            getfield android.widget.VideoView.mAudioSession:I
            ifne 4
         1: .line 870
            new android.media.MediaPlayer
            dup
            invokespecial android.media.MediaPlayer.<init>:()V
            astore 1 /* foo */
        start local 1 // android.media.MediaPlayer foo
         2: .line 871
            aload 0 /* this */
            aload 1 /* foo */
            invokevirtual android.media.MediaPlayer.getAudioSessionId:()I
            putfield android.widget.VideoView.mAudioSession:I
         3: .line 872
            aload 1 /* foo */
            invokevirtual android.media.MediaPlayer.release:()V
        end local 1 // android.media.MediaPlayer foo
         4: .line 874
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.VideoView.mAudioSession:I
            ireturn
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/widget/VideoView;
            2    4     1   foo  Landroid/media/MediaPlayer;

  protected void onAttachedToWindow();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 879
            aload 0 /* this */
            invokespecial android.view.SurfaceView.onAttachedToWindow:()V
         1: .line 881
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
            ifnull 3
         2: .line 882
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
            invokeinterface android.media.SubtitleTrack$RenderingWidget.onAttachedToWindow:()V
         3: .line 884
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/widget/VideoView;

  protected void onDetachedFromWindow();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 888
            aload 0 /* this */
            invokespecial android.view.SurfaceView.onDetachedFromWindow:()V
         1: .line 890
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
            ifnull 3
         2: .line 891
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
            invokeinterface android.media.SubtitleTrack$RenderingWidget.onDetachedFromWindow:()V
         3: .line 893
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/widget/VideoView;

  protected void onLayout(boolean, int, int, int, int);
    descriptor: (ZIIII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // android.widget.VideoView this
        start local 1 // boolean changed
        start local 2 // int left
        start local 3 // int top
        start local 4 // int right
        start local 5 // int bottom
         0: .line 897
            aload 0 /* this */
            iload 1 /* changed */
            iload 2 /* left */
            iload 3 /* top */
            iload 4 /* right */
            iload 5 /* bottom */
            invokespecial android.view.SurfaceView.onLayout:(ZIIII)V
         1: .line 899
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
            ifnull 3
         2: .line 900
            aload 0 /* this */
            invokevirtual android.widget.VideoView.measureAndLayoutSubtitleWidget:()V
         3: .line 902
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int bottom
        end local 4 // int right
        end local 3 // int top
        end local 2 // int left
        end local 1 // boolean changed
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Landroid/widget/VideoView;
            0    4     1  changed  Z
            0    4     2     left  I
            0    4     3      top  I
            0    4     4    right  I
            0    4     5   bottom  I
    MethodParameters:
         Name  Flags
      changed  
      left     
      top      
      right    
      bottom   

  public void draw(android.graphics.Canvas);
    descriptor: (Landroid/graphics/Canvas;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // android.graphics.Canvas canvas
         0: .line 906
            aload 0 /* this */
            aload 1 /* canvas */
            invokespecial android.view.SurfaceView.draw:(Landroid/graphics/Canvas;)V
         1: .line 908
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
            ifnull 6
         2: .line 909
            aload 1 /* canvas */
            invokevirtual android.graphics.Canvas.save:()I
            istore 2 /* saveCount */
        start local 2 // int saveCount
         3: .line 910
            aload 1 /* canvas */
            aload 0 /* this */
            invokevirtual android.widget.VideoView.getPaddingLeft:()I
            i2f
            aload 0 /* this */
            invokevirtual android.widget.VideoView.getPaddingTop:()I
            i2f
            invokevirtual android.graphics.Canvas.translate:(FF)V
         4: .line 911
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
            aload 1 /* canvas */
            invokeinterface android.media.SubtitleTrack$RenderingWidget.draw:(Landroid/graphics/Canvas;)V
         5: .line 912
            aload 1 /* canvas */
            iload 2 /* saveCount */
            invokevirtual android.graphics.Canvas.restoreToCount:(I)V
        end local 2 // int saveCount
         6: .line 914
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Landroid/widget/VideoView;
            0    7     1     canvas  Landroid/graphics/Canvas;
            3    6     2  saveCount  I
    MethodParameters:
        Name  Flags
      canvas  

  private void measureAndLayoutSubtitleWidget();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 922
            aload 0 /* this */
            invokevirtual android.widget.VideoView.getWidth:()I
            aload 0 /* this */
            invokevirtual android.widget.VideoView.getPaddingLeft:()I
            isub
            aload 0 /* this */
            invokevirtual android.widget.VideoView.getPaddingRight:()I
            isub
            istore 1 /* width */
        start local 1 // int width
         1: .line 923
            aload 0 /* this */
            invokevirtual android.widget.VideoView.getHeight:()I
            aload 0 /* this */
            invokevirtual android.widget.VideoView.getPaddingTop:()I
            isub
            aload 0 /* this */
            invokevirtual android.widget.VideoView.getPaddingBottom:()I
            isub
            istore 2 /* height */
        start local 2 // int height
         2: .line 925
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
            iload 1 /* width */
            iload 2 /* height */
            invokeinterface android.media.SubtitleTrack$RenderingWidget.setSize:(II)V
         3: .line 926
            return
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Landroid/widget/VideoView;
            1    4     1   width  I
            2    4     2  height  I

  public void setSubtitleWidget(android.media.SubtitleTrack$RenderingWidget);
    descriptor: (Landroid/media/SubtitleTrack$RenderingWidget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.widget.VideoView this
        start local 1 // android.media.SubtitleTrack$RenderingWidget subtitleWidget
         0: .line 931
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
            aload 1 /* subtitleWidget */
            if_acmpne 2
         1: .line 932
            return
         2: .line 935
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.VideoView.isAttachedToWindow:()Z
            istore 2 /* attachedToWindow */
        start local 2 // boolean attachedToWindow
         3: .line 936
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
            ifnull 7
         4: .line 937
            iload 2 /* attachedToWindow */
            ifeq 6
         5: .line 938
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
            invokeinterface android.media.SubtitleTrack$RenderingWidget.onDetachedFromWindow:()V
         6: .line 941
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
            aconst_null
            invokeinterface android.media.SubtitleTrack$RenderingWidget.setOnChangedListener:(Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;)V
         7: .line 944
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* subtitleWidget */
            putfield android.widget.VideoView.mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
         8: .line 946
            aload 1 /* subtitleWidget */
            ifnull 17
         9: .line 947
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitlesChangedListener:Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;
            ifnonnull 11
        10: .line 948
            aload 0 /* this */
            new android.widget.VideoView$8
            dup
            aload 0 /* this */
            invokespecial android.widget.VideoView$8.<init>:(Landroid/widget/VideoView;)V
            putfield android.widget.VideoView.mSubtitlesChangedListener:Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;
        11: .line 956
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual android.widget.VideoView.setWillNotDraw:(Z)V
        12: .line 957
            aload 1 /* subtitleWidget */
            aload 0 /* this */
            getfield android.widget.VideoView.mSubtitlesChangedListener:Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;
            invokeinterface android.media.SubtitleTrack$RenderingWidget.setOnChangedListener:(Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;)V
        13: .line 959
            iload 2 /* attachedToWindow */
            ifeq 18
        14: .line 960
            aload 1 /* subtitleWidget */
            invokeinterface android.media.SubtitleTrack$RenderingWidget.onAttachedToWindow:()V
        15: .line 961
            aload 0 /* this */
            invokevirtual android.widget.VideoView.requestLayout:()V
        16: .line 963
            goto 18
        17: .line 964
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual android.widget.VideoView.setWillNotDraw:(Z)V
        18: .line 967
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.VideoView.invalidate:()V
        19: .line 968
            return
        end local 2 // boolean attachedToWindow
        end local 1 // android.media.SubtitleTrack$RenderingWidget subtitleWidget
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              this  Landroid/widget/VideoView;
            0   20     1    subtitleWidget  Landroid/media/SubtitleTrack$RenderingWidget;
            3   20     2  attachedToWindow  Z
    MethodParameters:
                Name  Flags
      subtitleWidget  

  public android.os.Looper getSubtitleLooper();
    descriptor: ()Landroid/os/Looper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.VideoView this
         0: .line 973
            invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
            areturn
        end local 0 // android.widget.VideoView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/VideoView;
}
SourceFile: "VideoView.java"
NestMembers:
  android.widget.VideoView$1  android.widget.VideoView$2  android.widget.VideoView$3  android.widget.VideoView$4  android.widget.VideoView$5  android.widget.VideoView$5$1  android.widget.VideoView$6  android.widget.VideoView$7  android.widget.VideoView$8
InnerClasses:
  public Builder = android.media.AudioAttributes$Builder of android.media.AudioAttributes
  public abstract OnAudioFocusChangeListener = android.media.AudioManager$OnAudioFocusChangeListener of android.media.AudioManager
  public abstract OnBufferingUpdateListener = android.media.MediaPlayer$OnBufferingUpdateListener of android.media.MediaPlayer
  public abstract OnCompletionListener = android.media.MediaPlayer$OnCompletionListener of android.media.MediaPlayer
  public abstract OnErrorListener = android.media.MediaPlayer$OnErrorListener of android.media.MediaPlayer
  public abstract OnInfoListener = android.media.MediaPlayer$OnInfoListener of android.media.MediaPlayer
  public abstract OnPreparedListener = android.media.MediaPlayer$OnPreparedListener of android.media.MediaPlayer
  public abstract OnVideoSizeChangedListener = android.media.MediaPlayer$OnVideoSizeChangedListener of android.media.MediaPlayer
  public abstract Anchor = android.media.SubtitleController$Anchor of android.media.SubtitleController
  public abstract Listener = android.media.SubtitleController$Listener of android.media.SubtitleController
  public abstract Renderer = android.media.SubtitleController$Renderer of android.media.SubtitleController
  public abstract RenderingWidget = android.media.SubtitleTrack$RenderingWidget of android.media.SubtitleTrack
  public abstract OnChangedListener = android.media.SubtitleTrack$RenderingWidget$OnChangedListener of android.media.SubtitleTrack$RenderingWidget
  public abstract Callback = android.view.SurfaceHolder$Callback of android.view.SurfaceHolder
  public MeasureSpec = android.view.View$MeasureSpec of android.view.View
  public abstract MediaPlayerControl = android.widget.MediaController$MediaPlayerControl of android.widget.MediaController
  android.widget.VideoView$1
  android.widget.VideoView$2
  android.widget.VideoView$3
  android.widget.VideoView$4
  android.widget.VideoView$5
  android.widget.VideoView$6
  android.widget.VideoView$7
  android.widget.VideoView$8