public class android.media.MediaPlayer extends android.media.PlayerBase implements android.media.SubtitleController$Listener, android.media.VolumeAutomation, android.media.AudioRouting
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.media.MediaPlayer
  super_class: android.media.PlayerBase
{
  public static final boolean METADATA_UPDATE_ONLY;
    descriptor: Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final boolean METADATA_ALL;
    descriptor: Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final boolean APPLY_METADATA_FILTER;
    descriptor: Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final boolean BYPASS_METADATA_FILTER;
    descriptor: Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "MediaPlayer"

  private static final java.lang.String IMEDIA_PLAYER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.IMediaPlayer"

  private long mNativeContext;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long mNativeSurfaceTexture;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private android.os.PowerManager$WakeLock mWakeLock;
    descriptor: Landroid/os/PowerManager$WakeLock;
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

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

  private java.util.UUID mDrmUUID;
    descriptor: Ljava/util/UUID;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Object mDrmLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private android.media.MediaDrm mDrmObj;
    descriptor: Landroid/media/MediaDrm;
    flags: (0x0002) ACC_PRIVATE

  private byte[] mDrmSessionId;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

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

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

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

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

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

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

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

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

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

  public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private android.media.AudioDeviceInfo mPreferredDevice;
    descriptor: Landroid/media/AudioDeviceInfo;
    flags: (0x0002) ACC_PRIVATE

  private android.util.ArrayMap<android.media.AudioRouting$OnRoutingChangedListener, android.media.NativeRoutingEventHandlerDelegate> mRoutingChangeListeners;
    descriptor: Landroid/util/ArrayMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/util/ArrayMap<Landroid/media/AudioRouting$OnRoutingChangedListener;Landroid/media/NativeRoutingEventHandlerDelegate;>;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.GuardedBy(value = "mRoutingChangeListeners")

  public static final int PLAYBACK_RATE_AUDIO_MODE_RESAMPLE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int PLAYBACK_RATE_AUDIO_MODE_STRETCH;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int PLAYBACK_RATE_AUDIO_MODE_DEFAULT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int SEEK_PREVIOUS_SYNC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int SEEK_NEXT_SYNC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int SEEK_CLOSEST_SYNC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int SEEK_CLOSEST;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

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

  private java.util.Vector<android.util.Pair<java.lang.Integer, android.media.SubtitleTrack>> mIndexTrackPairs;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Vector<Landroid/util/Pair<Ljava/lang/Integer;Landroid/media/SubtitleTrack;>;>;

  private java.util.BitSet mInbandTrackIndices;
    descriptor: Ljava/util/BitSet;
    flags: (0x0002) ACC_PRIVATE

  public static final java.lang.String MEDIA_MIMETYPE_TEXT_SUBRIP;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "application/x-subrip"

  public static final java.lang.String MEDIA_MIMETYPE_TEXT_VTT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "text/vtt"

  public static final java.lang.String MEDIA_MIMETYPE_TEXT_CEA_608;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "text/cea-608"

  public static final java.lang.String MEDIA_MIMETYPE_TEXT_CEA_708;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "text/cea-708"

  private android.media.SubtitleController mSubtitleController;
    descriptor: Landroid/media/SubtitleController;
    flags: (0x0002) ACC_PRIVATE

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

  private java.util.Vector<java.io.InputStream> mOpenSubtitleSources;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Vector<Ljava/io/InputStream;>;

  private final android.media.MediaPlayer$OnSubtitleDataListener mIntSubtitleDataListener;
    descriptor: Landroid/media/MediaPlayer$OnSubtitleDataListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  private final android.media.MediaPlayer$OnCompletionListener mOnCompletionInternalListener;
    descriptor: Landroid/media/MediaPlayer$OnCompletionListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

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

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

  private android.os.Handler mExtSubtitleDataHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0002) ACC_PRIVATE

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

  private android.os.Handler mOnMediaTimeDiscontinuityHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0002) ACC_PRIVATE

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

  public static final int MEDIA_ERROR_UNKNOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int MEDIA_ERROR_SERVER_DIED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  public static final int MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 200

  public static final int MEDIA_ERROR_IO;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1004

  public static final int MEDIA_ERROR_MALFORMED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1007

  public static final int MEDIA_ERROR_UNSUPPORTED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1010

  public static final int MEDIA_ERROR_TIMED_OUT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -110

  public static final int MEDIA_ERROR_SYSTEM;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483648

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

  public static final int MEDIA_INFO_UNKNOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int MEDIA_INFO_STARTED_AS_NEXT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int MEDIA_INFO_VIDEO_RENDERING_START;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int MEDIA_INFO_VIDEO_TRACK_LAGGING;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 700

  public static final int MEDIA_INFO_BUFFERING_START;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 701

  public static final int MEDIA_INFO_BUFFERING_END;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 702

  public static final int MEDIA_INFO_NETWORK_BANDWIDTH;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 703

  public static final int MEDIA_INFO_BAD_INTERLEAVING;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 800

  public static final int MEDIA_INFO_NOT_SEEKABLE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 801

  public static final int MEDIA_INFO_METADATA_UPDATE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 802

  public static final int MEDIA_INFO_EXTERNAL_METADATA_UPDATE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 803

  public static final int MEDIA_INFO_AUDIO_NOT_PLAYING;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 804

  public static final int MEDIA_INFO_VIDEO_NOT_PLAYING;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 805

  public static final int MEDIA_INFO_TIMED_TEXT_ERROR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 900

  public static final int MEDIA_INFO_UNSUPPORTED_SUBTITLE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 901

  public static final int MEDIA_INFO_SUBTITLE_TIMED_OUT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 902

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

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

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

  public static final int PREPARE_DRM_STATUS_SUCCESS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int PREPARE_DRM_STATUS_PROVISIONING_NETWORK_ERROR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int PREPARE_DRM_STATUS_PROVISIONING_SERVER_ERROR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int PREPARE_DRM_STATUS_PREPARATION_ERROR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 619
            ldc "media_jni"
            invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
         1: .line 620
            invokestatic android.media.MediaPlayer.native_init:()V
         2: .line 4419
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 662
            aload 0 /* this */
            new android.media.AudioAttributes$Builder
            dup
            invokespecial android.media.AudioAttributes$Builder.<init>:()V
            invokevirtual android.media.AudioAttributes$Builder.build:()Landroid/media/AudioAttributes;
         1: .line 663
            iconst_2
            invokespecial android.media.PlayerBase.<init>:(Landroid/media/AudioAttributes;I)V
         2: .line 634
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mWakeLock:Landroid/os/PowerManager$WakeLock;
         3: .line 637
            aload 0 /* this */
            ldc -2147483648
            putfield android.media.MediaPlayer.mStreamType:I
         4: .line 638
            aload 0 /* this */
            iconst_m1
            putfield android.media.MediaPlayer.mUsage:I
         5: .line 643
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
         6: .line 1427
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mPreferredDevice:Landroid/media/AudioDeviceInfo;
         7: .line 1502
            aload 0 /* this */
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            putfield android.media.MediaPlayer.mRoutingChangeListeners:Landroid/util/ArrayMap;
         8: .line 2575
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
         9: .line 2576
            aload 0 /* this */
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            putfield android.media.MediaPlayer.mInbandTrackIndices:Ljava/util/BitSet;
        10: .line 2708
            aload 0 /* this */
            iconst_m1
            putfield android.media.MediaPlayer.mSelectedSubtitleTrackIndex:I
        11: .line 2711
            aload 0 /* this */
            new android.media.MediaPlayer$1
            dup
            aload 0 /* this */
            invokespecial android.media.MediaPlayer$1.<init>:(Landroid/media/MediaPlayer;)V
            putfield android.media.MediaPlayer.mIntSubtitleDataListener:Landroid/media/MediaPlayer$OnSubtitleDataListener;
        12: .line 3759
            aload 0 /* this */
            new android.media.MediaPlayer$2
            dup
            aload 0 /* this */
            invokespecial android.media.MediaPlayer$2.<init>:(Landroid/media/MediaPlayer;)V
            putfield android.media.MediaPlayer.mOnCompletionInternalListener:Landroid/media/MediaPlayer$OnCompletionListener;
        13: .line 666
            invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
            dup
            astore 1 /* looper */
        start local 1 // android.os.Looper looper
        14: ifnull 17
        15: .line 667
            aload 0 /* this */
            new android.media.MediaPlayer$EventHandler
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* looper */
            invokespecial android.media.MediaPlayer$EventHandler.<init>:(Landroid/media/MediaPlayer;Landroid/media/MediaPlayer;Landroid/os/Looper;)V
            putfield android.media.MediaPlayer.mEventHandler:Landroid/media/MediaPlayer$EventHandler;
        16: .line 668
            goto 21
      StackMap locals: android.media.MediaPlayer android.os.Looper
      StackMap stack:
        17: invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
            dup
            astore 1 /* looper */
            ifnull 20
        18: .line 669
            aload 0 /* this */
            new android.media.MediaPlayer$EventHandler
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* looper */
            invokespecial android.media.MediaPlayer$EventHandler.<init>:(Landroid/media/MediaPlayer;Landroid/media/MediaPlayer;Landroid/os/Looper;)V
            putfield android.media.MediaPlayer.mEventHandler:Landroid/media/MediaPlayer$EventHandler;
        19: .line 670
            goto 21
        20: .line 671
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mEventHandler:Landroid/media/MediaPlayer$EventHandler;
        21: .line 674
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new android.media.MediaPlayer$TimeProvider
            dup
            aload 0 /* this */
            invokespecial android.media.MediaPlayer$TimeProvider.<init>:(Landroid/media/MediaPlayer;)V
            putfield android.media.MediaPlayer.mTimeProvider:Landroid/media/MediaPlayer$TimeProvider;
        22: .line 675
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield android.media.MediaPlayer.mOpenSubtitleSources:Ljava/util/Vector;
        23: .line 680
            aload 0 /* this */
            new java.lang.ref.WeakReference
            dup
            aload 0 /* this */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            invokevirtual android.media.MediaPlayer.native_setup:(Ljava/lang/Object;)V
        24: .line 682
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.baseRegisterPlayer:()V
        25: .line 683
            return
        end local 1 // android.os.Looper looper
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   26     0    this  Landroid/media/MediaPlayer;
           14   26     1  looper  Landroid/os/Looper;

  private native void _setVideoSurface(android.view.Surface);
    descriptor: (Landroid/view/Surface;)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
         Name  Flags
      surface  

  public android.os.Parcel newRequest();
    descriptor: ()Landroid/os/Parcel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 714
            invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
            astore 1 /* parcel */
        start local 1 // android.os.Parcel parcel
         1: .line 715
            aload 1 /* parcel */
            ldc "android.media.IMediaPlayer"
            invokevirtual android.os.Parcel.writeInterfaceToken:(Ljava/lang/String;)V
         2: .line 716
            aload 1 /* parcel */
            areturn
        end local 1 // android.os.Parcel parcel
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/media/MediaPlayer;
            1    3     1  parcel  Landroid/os/Parcel;

  public void invoke(android.os.Parcel, android.os.Parcel);
    descriptor: (Landroid/os/Parcel;Landroid/os/Parcel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.os.Parcel request
        start local 2 // android.os.Parcel reply
         0: .line 734
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* reply */
            invokevirtual android.media.MediaPlayer.native_invoke:(Landroid/os/Parcel;Landroid/os/Parcel;)I
            istore 3 /* retcode */
        start local 3 // int retcode
         1: .line 735
            aload 2 /* reply */
            iconst_0
            invokevirtual android.os.Parcel.setDataPosition:(I)V
         2: .line 736
            iload 3 /* retcode */
            ifeq 4
         3: .line 737
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "failure code: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* retcode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 739
      StackMap locals: int
      StackMap stack:
            return
        end local 3 // int retcode
        end local 2 // android.os.Parcel reply
        end local 1 // android.os.Parcel request
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/media/MediaPlayer;
            0    5     1  request  Landroid/os/Parcel;
            0    5     2    reply  Landroid/os/Parcel;
            1    5     3  retcode  I
    MethodParameters:
         Name  Flags
      request  
      reply    

  public void setDisplay(android.view.SurfaceHolder);
    descriptor: (Landroid/view/SurfaceHolder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.view.SurfaceHolder sh
         0: .line 756
            aload 0 /* this */
            aload 1 /* sh */
            putfield android.media.MediaPlayer.mSurfaceHolder:Landroid/view/SurfaceHolder;
         1: .line 758
            aload 1 /* sh */
            ifnull 4
         2: .line 759
            aload 1 /* sh */
            invokeinterface android.view.SurfaceHolder.getSurface:()Landroid/view/Surface;
            astore 2 /* surface */
        start local 2 // android.view.Surface surface
         3: .line 760
            goto 5
        end local 2 // android.view.Surface surface
         4: .line 761
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* surface */
        start local 2 // android.view.Surface surface
         5: .line 763
      StackMap locals: android.view.Surface
      StackMap stack:
            aload 0 /* this */
            aload 2 /* surface */
            invokevirtual android.media.MediaPlayer._setVideoSurface:(Landroid/view/Surface;)V
         6: .line 764
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.updateSurfaceScreenOn:()V
         7: .line 765
            return
        end local 2 // android.view.Surface surface
        end local 1 // android.view.SurfaceHolder sh
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Landroid/media/MediaPlayer;
            0    8     1       sh  Landroid/view/SurfaceHolder;
            3    4     2  surface  Landroid/view/Surface;
            5    8     2  surface  Landroid/view/Surface;
    MethodParameters:
      Name  Flags
      sh    

  public void setSurface(android.view.Surface);
    descriptor: (Landroid/view/Surface;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.view.Surface surface
         0: .line 788
            aload 0 /* this */
            getfield android.media.MediaPlayer.mScreenOnWhilePlaying:Z
            ifeq 2
            aload 1 /* surface */
            ifnull 2
         1: .line 789
            ldc "MediaPlayer"
            ldc "setScreenOnWhilePlaying(true) is ineffective for Surface"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 791
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mSurfaceHolder:Landroid/view/SurfaceHolder;
         3: .line 792
            aload 0 /* this */
            aload 1 /* surface */
            invokevirtual android.media.MediaPlayer._setVideoSurface:(Landroid/view/Surface;)V
         4: .line 793
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.updateSurfaceScreenOn:()V
         5: .line 794
            return
        end local 1 // android.view.Surface surface
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/MediaPlayer;
            0    6     1  surface  Landroid/view/Surface;
    MethodParameters:
         Name  Flags
      surface  

  public void setVideoScalingMode(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // int mode
         0: .line 837
            aload 0 /* this */
            iload 1 /* mode */
            invokevirtual android.media.MediaPlayer.isVideoScalingModeSupported:(I)Z
            ifne 3
         1: .line 838
            new java.lang.StringBuilder
            dup
            ldc "Scaling mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* mode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " is not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* msg */
        start local 2 // java.lang.String msg
         2: .line 839
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* msg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String msg
         3: .line 841
      StackMap locals:
      StackMap stack:
            invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
            astore 2 /* request */
        start local 2 // android.os.Parcel request
         4: .line 842
            invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
            astore 3 /* reply */
        start local 3 // android.os.Parcel reply
         5: .line 844
            aload 2 /* request */
            ldc "android.media.IMediaPlayer"
            invokevirtual android.os.Parcel.writeInterfaceToken:(Ljava/lang/String;)V
         6: .line 845
            aload 2 /* request */
            bipush 6
            invokevirtual android.os.Parcel.writeInt:(I)V
         7: .line 846
            aload 2 /* request */
            iload 1 /* mode */
            invokevirtual android.os.Parcel.writeInt:(I)V
         8: .line 847
            aload 0 /* this */
            aload 2 /* request */
            aload 3 /* reply */
            invokevirtual android.media.MediaPlayer.invoke:(Landroid/os/Parcel;Landroid/os/Parcel;)V
         9: .line 848
            goto 14
      StackMap locals: android.media.MediaPlayer int android.os.Parcel android.os.Parcel
      StackMap stack: java.lang.Throwable
        10: astore 4
        11: .line 849
            aload 2 /* request */
            invokevirtual android.os.Parcel.recycle:()V
        12: .line 850
            aload 3 /* reply */
            invokevirtual android.os.Parcel.recycle:()V
        13: .line 851
            aload 4
            athrow
        14: .line 849
      StackMap locals:
      StackMap stack:
            aload 2 /* request */
            invokevirtual android.os.Parcel.recycle:()V
        15: .line 850
            aload 3 /* reply */
            invokevirtual android.os.Parcel.recycle:()V
        16: .line 852
            return
        end local 3 // android.os.Parcel reply
        end local 2 // android.os.Parcel request
        end local 1 // int mode
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Landroid/media/MediaPlayer;
            0   17     1     mode  I
            2    3     2      msg  Ljava/lang/String;
            4   17     2  request  Landroid/os/Parcel;
            5   17     3    reply  Landroid/os/Parcel;
      Exception table:
        from    to  target  type
           5    10      10  any
    MethodParameters:
      Name  Flags
      mode  

  public static android.media.MediaPlayer create(android.content.Context, android.net.Uri);
    descriptor: (Landroid/content/Context;Landroid/net/Uri;)Landroid/media/MediaPlayer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.content.Context context
        start local 1 // android.net.Uri uri
         0: .line 870
            aload 0 /* context */
            aload 1 /* uri */
            aconst_null
            invokestatic android.media.MediaPlayer.create:(Landroid/content/Context;Landroid/net/Uri;Landroid/view/SurfaceHolder;)Landroid/media/MediaPlayer;
            areturn
        end local 1 // android.net.Uri uri
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Landroid/content/Context;
            0    1     1      uri  Landroid/net/Uri;
    MethodParameters:
         Name  Flags
      context  
      uri      

  public static android.media.MediaPlayer create(android.content.Context, android.net.Uri, android.view.SurfaceHolder);
    descriptor: (Landroid/content/Context;Landroid/net/Uri;Landroid/view/SurfaceHolder;)Landroid/media/MediaPlayer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // android.content.Context context
        start local 1 // android.net.Uri uri
        start local 2 // android.view.SurfaceHolder holder
         0: .line 890
            invokestatic android.media.AudioSystem.newAudioSessionId:()I
            istore 3 /* s */
        start local 3 // int s
         1: .line 891
            aload 0 /* context */
            aload 1 /* uri */
            aload 2 /* holder */
            aconst_null
            iload 3 /* s */
            ifle 2
            iload 3 /* s */
            goto 3
      StackMap locals: android.content.Context android.net.Uri android.view.SurfaceHolder int
      StackMap stack: android.content.Context android.net.Uri android.view.SurfaceHolder null
         2: iconst_0
      StackMap locals: android.content.Context android.net.Uri android.view.SurfaceHolder int
      StackMap stack: android.content.Context android.net.Uri android.view.SurfaceHolder null int
         3: invokestatic android.media.MediaPlayer.create:(Landroid/content/Context;Landroid/net/Uri;Landroid/view/SurfaceHolder;Landroid/media/AudioAttributes;I)Landroid/media/MediaPlayer;
            areturn
        end local 3 // int s
        end local 2 // android.view.SurfaceHolder holder
        end local 1 // android.net.Uri uri
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Landroid/content/Context;
            0    4     1      uri  Landroid/net/Uri;
            0    4     2   holder  Landroid/view/SurfaceHolder;
            1    4     3        s  I
    MethodParameters:
         Name  Flags
      context  
      uri      
      holder   

  public static android.media.MediaPlayer create(android.content.Context, android.net.Uri, android.view.SurfaceHolder, android.media.AudioAttributes, int);
    descriptor: (Landroid/content/Context;Landroid/net/Uri;Landroid/view/SurfaceHolder;Landroid/media/AudioAttributes;I)Landroid/media/MediaPlayer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // android.content.Context context
        start local 1 // android.net.Uri uri
        start local 2 // android.view.SurfaceHolder holder
        start local 3 // android.media.AudioAttributes audioAttributes
        start local 4 // int audioSessionId
         0: .line 909
            new android.media.MediaPlayer
            dup
            invokespecial android.media.MediaPlayer.<init>:()V
            astore 5 /* mp */
        start local 5 // android.media.MediaPlayer mp
         1: .line 910
            aload 3 /* audioAttributes */
            ifnull 2
            aload 3 /* audioAttributes */
            goto 3
         2: .line 911
      StackMap locals: android.media.MediaPlayer
      StackMap stack:
            new android.media.AudioAttributes$Builder
            dup
            invokespecial android.media.AudioAttributes$Builder.<init>:()V
            invokevirtual android.media.AudioAttributes$Builder.build:()Landroid/media/AudioAttributes;
         3: .line 910
      StackMap locals:
      StackMap stack: android.media.AudioAttributes
            astore 6 /* aa */
        start local 6 // android.media.AudioAttributes aa
         4: .line 912
            aload 5 /* mp */
            aload 6 /* aa */
            invokevirtual android.media.MediaPlayer.setAudioAttributes:(Landroid/media/AudioAttributes;)V
         5: .line 913
            aload 5 /* mp */
            iload 4 /* audioSessionId */
            invokevirtual android.media.MediaPlayer.setAudioSessionId:(I)V
         6: .line 914
            aload 5 /* mp */
            aload 0 /* context */
            aload 1 /* uri */
            invokevirtual android.media.MediaPlayer.setDataSource:(Landroid/content/Context;Landroid/net/Uri;)V
         7: .line 915
            aload 2 /* holder */
            ifnull 9
         8: .line 916
            aload 5 /* mp */
            aload 2 /* holder */
            invokevirtual android.media.MediaPlayer.setDisplay:(Landroid/view/SurfaceHolder;)V
         9: .line 918
      StackMap locals: android.media.AudioAttributes
      StackMap stack:
            aload 5 /* mp */
            invokevirtual android.media.MediaPlayer.prepare:()V
        10: .line 919
            aload 5 /* mp */
        11: areturn
        end local 6 // android.media.AudioAttributes aa
        end local 5 // android.media.MediaPlayer mp
        12: .line 920
      StackMap locals: android.content.Context android.net.Uri android.view.SurfaceHolder android.media.AudioAttributes int
      StackMap stack: java.io.IOException
            astore 5 /* ex */
        start local 5 // java.io.IOException ex
        13: .line 921
            ldc "MediaPlayer"
            ldc "create failed:"
            aload 5 /* ex */
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 5 // java.io.IOException ex
        14: goto 20
        15: .line 923
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 5 /* ex */
        start local 5 // java.lang.IllegalArgumentException ex
        16: .line 924
            ldc "MediaPlayer"
            ldc "create failed:"
            aload 5 /* ex */
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 5 // java.lang.IllegalArgumentException ex
        17: goto 20
        18: .line 926
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            astore 5 /* ex */
        start local 5 // java.lang.SecurityException ex
        19: .line 927
            ldc "MediaPlayer"
            ldc "create failed:"
            aload 5 /* ex */
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 5 // java.lang.SecurityException ex
        20: .line 931
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // int audioSessionId
        end local 3 // android.media.AudioAttributes audioAttributes
        end local 2 // android.view.SurfaceHolder holder
        end local 1 // android.net.Uri uri
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   21     0          context  Landroid/content/Context;
            0   21     1              uri  Landroid/net/Uri;
            0   21     2           holder  Landroid/view/SurfaceHolder;
            0   21     3  audioAttributes  Landroid/media/AudioAttributes;
            0   21     4   audioSessionId  I
            1   12     5               mp  Landroid/media/MediaPlayer;
            4   12     6               aa  Landroid/media/AudioAttributes;
           13   14     5               ex  Ljava/io/IOException;
           16   17     5               ex  Ljava/lang/IllegalArgumentException;
           19   20     5               ex  Ljava/lang/SecurityException;
      Exception table:
        from    to  target  type
           0    11      12  Class java.io.IOException
           0    11      15  Class java.lang.IllegalArgumentException
           0    11      18  Class java.lang.SecurityException
    MethodParameters:
                 Name  Flags
      context          
      uri              
      holder           
      audioAttributes  
      audioSessionId   

  public static android.media.MediaPlayer create(android.content.Context, int);
    descriptor: (Landroid/content/Context;I)Landroid/media/MediaPlayer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.content.Context context
        start local 1 // int resid
         0: .line 953
            invokestatic android.media.AudioSystem.newAudioSessionId:()I
            istore 2 /* s */
        start local 2 // int s
         1: .line 954
            aload 0 /* context */
            iload 1 /* resid */
            aconst_null
            iload 2 /* s */
            ifle 2
            iload 2 /* s */
            goto 3
      StackMap locals: android.content.Context int int
      StackMap stack: android.content.Context int null
         2: iconst_0
      StackMap locals: android.content.Context int int
      StackMap stack: android.content.Context int null int
         3: invokestatic android.media.MediaPlayer.create:(Landroid/content/Context;ILandroid/media/AudioAttributes;I)Landroid/media/MediaPlayer;
            areturn
        end local 2 // int s
        end local 1 // int resid
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Landroid/content/Context;
            0    4     1    resid  I
            1    4     2        s  I
    MethodParameters:
         Name  Flags
      context  
      resid    

  public static android.media.MediaPlayer create(android.content.Context, int, android.media.AudioAttributes, int);
    descriptor: (Landroid/content/Context;ILandroid/media/AudioAttributes;I)Landroid/media/MediaPlayer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // android.content.Context context
        start local 1 // int resid
        start local 2 // android.media.AudioAttributes audioAttributes
        start local 3 // int audioSessionId
         0: .line 971
            aload 0 /* context */
            invokevirtual android.content.Context.getResources:()Landroid/content/res/Resources;
            iload 1 /* resid */
            invokevirtual android.content.res.Resources.openRawResourceFd:(I)Landroid/content/res/AssetFileDescriptor;
            astore 4 /* afd */
        start local 4 // android.content.res.AssetFileDescriptor afd
         1: .line 972
            aload 4 /* afd */
            ifnonnull 3
         2: aconst_null
            areturn
         3: .line 974
      StackMap locals: android.content.res.AssetFileDescriptor
      StackMap stack:
            new android.media.MediaPlayer
            dup
            invokespecial android.media.MediaPlayer.<init>:()V
            astore 5 /* mp */
        start local 5 // android.media.MediaPlayer mp
         4: .line 976
            aload 2 /* audioAttributes */
            ifnull 5
            aload 2 /* audioAttributes */
            goto 6
         5: .line 977
      StackMap locals: android.media.MediaPlayer
      StackMap stack:
            new android.media.AudioAttributes$Builder
            dup
            invokespecial android.media.AudioAttributes$Builder.<init>:()V
            invokevirtual android.media.AudioAttributes$Builder.build:()Landroid/media/AudioAttributes;
         6: .line 976
      StackMap locals:
      StackMap stack: android.media.AudioAttributes
            astore 6 /* aa */
        start local 6 // android.media.AudioAttributes aa
         7: .line 978
            aload 5 /* mp */
            aload 6 /* aa */
            invokevirtual android.media.MediaPlayer.setAudioAttributes:(Landroid/media/AudioAttributes;)V
         8: .line 979
            aload 5 /* mp */
            iload 3 /* audioSessionId */
            invokevirtual android.media.MediaPlayer.setAudioSessionId:(I)V
         9: .line 981
            aload 5 /* mp */
            aload 4 /* afd */
            invokevirtual android.content.res.AssetFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
            aload 4 /* afd */
            invokevirtual android.content.res.AssetFileDescriptor.getStartOffset:()J
            aload 4 /* afd */
            invokevirtual android.content.res.AssetFileDescriptor.getLength:()J
            invokevirtual android.media.MediaPlayer.setDataSource:(Ljava/io/FileDescriptor;JJ)V
        10: .line 982
            aload 4 /* afd */
            invokevirtual android.content.res.AssetFileDescriptor.close:()V
        11: .line 983
            aload 5 /* mp */
            invokevirtual android.media.MediaPlayer.prepare:()V
        12: .line 984
            aload 5 /* mp */
        13: areturn
        end local 6 // android.media.AudioAttributes aa
        end local 5 // android.media.MediaPlayer mp
        end local 4 // android.content.res.AssetFileDescriptor afd
        14: .line 985
      StackMap locals: android.content.Context int android.media.AudioAttributes int
      StackMap stack: java.io.IOException
            astore 4 /* ex */
        start local 4 // java.io.IOException ex
        15: .line 986
            ldc "MediaPlayer"
            ldc "create failed:"
            aload 4 /* ex */
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 4 // java.io.IOException ex
        16: goto 22
        17: .line 988
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 4 /* ex */
        start local 4 // java.lang.IllegalArgumentException ex
        18: .line 989
            ldc "MediaPlayer"
            ldc "create failed:"
            aload 4 /* ex */
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 4 // java.lang.IllegalArgumentException ex
        19: goto 22
        20: .line 991
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            astore 4 /* ex */
        start local 4 // java.lang.SecurityException ex
        21: .line 992
            ldc "MediaPlayer"
            ldc "create failed:"
            aload 4 /* ex */
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 4 // java.lang.SecurityException ex
        22: .line 995
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // int audioSessionId
        end local 2 // android.media.AudioAttributes audioAttributes
        end local 1 // int resid
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   23     0          context  Landroid/content/Context;
            0   23     1            resid  I
            0   23     2  audioAttributes  Landroid/media/AudioAttributes;
            0   23     3   audioSessionId  I
            1   14     4              afd  Landroid/content/res/AssetFileDescriptor;
            4   14     5               mp  Landroid/media/MediaPlayer;
            7   14     6               aa  Landroid/media/AudioAttributes;
           15   16     4               ex  Ljava/io/IOException;
           18   19     4               ex  Ljava/lang/IllegalArgumentException;
           21   22     4               ex  Ljava/lang/SecurityException;
      Exception table:
        from    to  target  type
           0     2      14  Class java.io.IOException
           3    13      14  Class java.io.IOException
           0     2      17  Class java.lang.IllegalArgumentException
           3    13      17  Class java.lang.IllegalArgumentException
           0     2      20  Class java.lang.SecurityException
           3    13      20  Class java.lang.SecurityException
    MethodParameters:
                 Name  Flags
      context          
      resid            
      audioAttributes  
      audioSessionId   

  public void setDataSource(android.content.Context, android.net.Uri);
    descriptor: (Landroid/content/Context;Landroid/net/Uri;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.content.Context context
        start local 2 // android.net.Uri uri
         0: .line 1007
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* uri */
            aconst_null
            aconst_null
            invokevirtual android.media.MediaPlayer.setDataSource:(Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map;Ljava/util/List;)V
         1: .line 1008
            return
        end local 2 // android.net.Uri uri
        end local 1 // android.content.Context context
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/media/MediaPlayer;
            0    2     1  context  Landroid/content/Context;
            0    2     2      uri  Landroid/net/Uri;
    Exceptions:
      throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.SecurityException, java.lang.IllegalStateException
    MethodParameters:
         Name  Flags
      context  
      uri      

  public void setDataSource(android.content.Context, android.net.Uri, java.util.Map<java.lang.String, java.lang.String>, java.util.List<java.net.HttpCookie>);
    descriptor: (Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=5
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.content.Context context
        start local 2 // android.net.Uri uri
        start local 3 // java.util.Map headers
        start local 4 // java.util.List cookies
         0: .line 1039
            aload 1 /* context */
            ifnonnull 2
         1: .line 1040
            new java.lang.NullPointerException
            dup
            ldc "context param can not be null."
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1043
      StackMap locals:
      StackMap stack:
            aload 2 /* uri */
            ifnonnull 4
         3: .line 1044
            new java.lang.NullPointerException
            dup
            ldc "uri param can not be null."
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1047
      StackMap locals:
      StackMap stack:
            aload 4 /* cookies */
            ifnull 8
         5: .line 1048
            invokestatic java.net.CookieHandler.getDefault:()Ljava/net/CookieHandler;
            astore 5 /* cookieHandler */
        start local 5 // java.net.CookieHandler cookieHandler
         6: .line 1049
            aload 5 /* cookieHandler */
            ifnull 8
            aload 5 /* cookieHandler */
            instanceof java.net.CookieManager
            ifne 8
         7: .line 1050
            new java.lang.IllegalArgumentException
            dup
            ldc "The cookie handler has to be of CookieManager type when cookies are provided."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.net.CookieHandler cookieHandler
         8: .line 1057
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
            astore 5 /* resolver */
        start local 5 // android.content.ContentResolver resolver
         9: .line 1058
            aload 2 /* uri */
            invokevirtual android.net.Uri.getScheme:()Ljava/lang/String;
            astore 6 /* scheme */
        start local 6 // java.lang.String scheme
        10: .line 1059
            aload 2 /* uri */
            invokevirtual android.net.Uri.getAuthority:()Ljava/lang/String;
            invokestatic android.content.ContentProvider.getAuthorityWithoutUserId:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* authority */
        start local 7 // java.lang.String authority
        11: .line 1060
            ldc "file"
            aload 6 /* scheme */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 1061
            aload 0 /* this */
            aload 2 /* uri */
            invokevirtual android.net.Uri.getPath:()Ljava/lang/String;
            invokevirtual android.media.MediaPlayer.setDataSource:(Ljava/lang/String;)V
        13: .line 1062
            return
        14: .line 1063
      StackMap locals: android.content.ContentResolver java.lang.String java.lang.String
      StackMap stack:
            ldc "content"
            aload 6 /* scheme */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
        15: .line 1064
            ldc "settings"
            aload 7 /* authority */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
        16: .line 1067
            aload 2 /* uri */
            invokestatic android.media.RingtoneManager.getDefaultType:(Landroid/net/Uri;)I
            istore 8 /* type */
        start local 8 // int type
        17: .line 1068
            iload 8 /* type */
            aload 1 /* context */
            invokevirtual android.content.Context.getUserId:()I
            invokestatic android.media.RingtoneManager.getCacheForType:(II)Landroid/net/Uri;
            astore 9 /* cacheUri */
        start local 9 // android.net.Uri cacheUri
        18: .line 1069
            aload 1 /* context */
            iload 8 /* type */
            invokestatic android.media.RingtoneManager.getActualDefaultRingtoneUri:(Landroid/content/Context;I)Landroid/net/Uri;
            astore 10 /* actualUri */
        start local 10 // android.net.Uri actualUri
        19: .line 1070
            aload 0 /* this */
            aload 5 /* resolver */
            aload 9 /* cacheUri */
            invokevirtual android.media.MediaPlayer.attemptDataSource:(Landroid/content/ContentResolver;Landroid/net/Uri;)Z
            ifeq 21
        20: .line 1071
            return
        21: .line 1072
      StackMap locals: int android.net.Uri android.net.Uri
      StackMap stack:
            aload 0 /* this */
            aload 5 /* resolver */
            aload 10 /* actualUri */
            invokevirtual android.media.MediaPlayer.attemptDataSource:(Landroid/content/ContentResolver;Landroid/net/Uri;)Z
            ifeq 23
        22: .line 1073
            return
        23: .line 1075
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* uri */
            invokevirtual android.net.Uri.toString:()Ljava/lang/String;
            aload 3 /* headers */
            aload 4 /* cookies */
            invokevirtual android.media.MediaPlayer.setDataSource:(Ljava/lang/String;Ljava/util/Map;Ljava/util/List;)V
        end local 10 // android.net.Uri actualUri
        end local 9 // android.net.Uri cacheUri
        end local 8 // int type
        24: .line 1077
            goto 28
        25: .line 1079
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* resolver */
            aload 2 /* uri */
            invokevirtual android.media.MediaPlayer.attemptDataSource:(Landroid/content/ContentResolver;Landroid/net/Uri;)Z
            ifeq 27
        26: .line 1080
            return
        27: .line 1082
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* uri */
            invokevirtual android.net.Uri.toString:()Ljava/lang/String;
            aload 3 /* headers */
            aload 4 /* cookies */
            invokevirtual android.media.MediaPlayer.setDataSource:(Ljava/lang/String;Ljava/util/Map;Ljava/util/List;)V
        28: .line 1085
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.lang.String authority
        end local 6 // java.lang.String scheme
        end local 5 // android.content.ContentResolver resolver
        end local 4 // java.util.List cookies
        end local 3 // java.util.Map headers
        end local 2 // android.net.Uri uri
        end local 1 // android.content.Context context
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   29     0           this  Landroid/media/MediaPlayer;
            0   29     1        context  Landroid/content/Context;
            0   29     2            uri  Landroid/net/Uri;
            0   29     3        headers  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   29     4        cookies  Ljava/util/List<Ljava/net/HttpCookie;>;
            6    8     5  cookieHandler  Ljava/net/CookieHandler;
            9   29     5       resolver  Landroid/content/ContentResolver;
           10   29     6         scheme  Ljava/lang/String;
           11   29     7      authority  Ljava/lang/String;
           17   24     8           type  I
           18   24     9       cacheUri  Landroid/net/Uri;
           19   24    10      actualUri  Landroid/net/Uri;
    Exceptions:
      throws java.io.IOException
    Signature: (Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/util/List<Ljava/net/HttpCookie;>;)V
    MethodParameters:
         Name  Flags
      context  
      uri      
      headers  
      cookies  

  public void setDataSource(android.content.Context, android.net.Uri, java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.content.Context context
        start local 2 // android.net.Uri uri
        start local 3 // java.util.Map headers
         0: .line 1103
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* uri */
            aload 3 /* headers */
            aconst_null
            invokevirtual android.media.MediaPlayer.setDataSource:(Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map;Ljava/util/List;)V
         1: .line 1104
            return
        end local 3 // java.util.Map headers
        end local 2 // android.net.Uri uri
        end local 1 // android.content.Context context
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/media/MediaPlayer;
            0    2     1  context  Landroid/content/Context;
            0    2     2      uri  Landroid/net/Uri;
            0    2     3  headers  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Exceptions:
      throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.SecurityException, java.lang.IllegalStateException
    Signature: (Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
         Name  Flags
      context  
      uri      
      headers  

  private boolean attemptDataSource(android.content.ContentResolver, android.net.Uri);
    descriptor: (Landroid/content/ContentResolver;Landroid/net/Uri;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.content.ContentResolver resolver
        start local 2 // android.net.Uri uri
         0: .line 1107
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: aload 1 /* resolver */
            aload 2 /* uri */
            ldc "r"
            invokevirtual android.content.ContentResolver.openAssetFileDescriptor:(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
            astore 5 /* afd */
        start local 5 // android.content.res.AssetFileDescriptor afd
         2: .line 1108
            aload 0 /* this */
            aload 5 /* afd */
            invokevirtual android.media.MediaPlayer.setDataSource:(Landroid/content/res/AssetFileDescriptor;)V
         3: .line 1110
            aload 5 /* afd */
            ifnull 4
            aload 5 /* afd */
            invokevirtual android.content.res.AssetFileDescriptor.close:()V
         4: .line 1109
      StackMap locals: java.lang.Throwable java.lang.Throwable android.content.res.AssetFileDescriptor
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 3
         6: .line 1110
            aload 5 /* afd */
            ifnull 7
            aload 5 /* afd */
            invokevirtual android.content.res.AssetFileDescriptor.close:()V
        end local 5 // android.content.res.AssetFileDescriptor afd
      StackMap locals:
      StackMap stack:
         7: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 4
            aload 3
            ifnonnull 9
            aload 4
            astore 3
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 3
            aload 4
            if_acmpeq 10
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        10: aload 3
            athrow
      StackMap locals: android.media.MediaPlayer android.content.ContentResolver android.net.Uri
      StackMap stack: java.lang.Exception
        11: astore 3 /* ex */
        start local 3 // java.lang.Exception ex
        12: .line 1111
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "Couldn't open "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        13: .line 1112
            iconst_0
            ireturn
        end local 3 // java.lang.Exception ex
        end local 2 // android.net.Uri uri
        end local 1 // android.content.ContentResolver resolver
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Landroid/media/MediaPlayer;
            0   14     1  resolver  Landroid/content/ContentResolver;
            0   14     2       uri  Landroid/net/Uri;
            2    7     5       afd  Landroid/content/res/AssetFileDescriptor;
           12   14     3        ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       5  any
           1     4       8  any
           5     8       8  any
           0     4      11  Class java.lang.NullPointerException
           5    11      11  Class java.lang.NullPointerException
           0     4      11  Class java.lang.SecurityException
           5    11      11  Class java.lang.SecurityException
           0     4      11  Class java.io.IOException
           5    11      11  Class java.io.IOException
    MethodParameters:
          Name  Flags
      resolver  
      uri       

  public void setDataSource(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.lang.String path
         0: .line 1131
            aload 0 /* this */
            aload 1 /* path */
            aconst_null
            aconst_null
            invokevirtual android.media.MediaPlayer.setDataSource:(Ljava/lang/String;Ljava/util/Map;Ljava/util/List;)V
         1: .line 1132
            return
        end local 1 // java.lang.String path
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaPlayer;
            0    2     1  path  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.SecurityException, java.lang.IllegalStateException
    MethodParameters:
      Name  Flags
      path  

  public void setDataSource(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.lang.String path
        start local 2 // java.util.Map headers
         0: .line 1144
            aload 0 /* this */
            aload 1 /* path */
            aload 2 /* headers */
            aconst_null
            invokevirtual android.media.MediaPlayer.setDataSource:(Ljava/lang/String;Ljava/util/Map;Ljava/util/List;)V
         1: .line 1145
            return
        end local 2 // java.util.Map headers
        end local 1 // java.lang.String path
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/media/MediaPlayer;
            0    2     1     path  Ljava/lang/String;
            0    2     2  headers  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Exceptions:
      throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.SecurityException, java.lang.IllegalStateException
    Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
         Name  Flags
      path     
      headers  

  private void setDataSource(java.lang.String, java.util.Map<java.lang.String, java.lang.String>, java.util.List<java.net.HttpCookie>);
    descriptor: (Ljava/lang/String;Ljava/util/Map;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.lang.String path
        start local 2 // java.util.Map headers
        start local 3 // java.util.List cookies
         0: .line 1150
            aconst_null
            astore 4 /* keys */
        start local 4 // java.lang.String[] keys
         1: .line 1151
            aconst_null
            astore 5 /* values */
        start local 5 // java.lang.String[] values
         2: .line 1153
            aload 2 /* headers */
            ifnull 12
         3: .line 1154
            aload 2 /* headers */
            invokeinterface java.util.Map.size:()I
            anewarray java.lang.String
            astore 4 /* keys */
         4: .line 1155
            aload 2 /* headers */
            invokeinterface java.util.Map.size:()I
            anewarray java.lang.String
            astore 5 /* values */
         5: .line 1157
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: .line 1158
            aload 2 /* headers */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 11
      StackMap locals: android.media.MediaPlayer java.lang.String java.util.Map java.util.List java.lang.String[] java.lang.String[] int top java.util.Iterator
      StackMap stack:
         7: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 7 /* entry */
        start local 7 // java.util.Map$Entry entry
         8: .line 1159
            aload 4 /* keys */
            iload 6 /* i */
            aload 7 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aastore
         9: .line 1160
            aload 5 /* values */
            iload 6 /* i */
            aload 7 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            aastore
        10: .line 1161
            iinc 6 /* i */ 1
        end local 7 // java.util.Map$Entry entry
        11: .line 1158
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 6 // int i
        12: .line 1164
      StackMap locals: android.media.MediaPlayer java.lang.String java.util.Map java.util.List java.lang.String[] java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            aload 1 /* path */
            aload 4 /* keys */
            aload 5 /* values */
            aload 3 /* cookies */
            invokevirtual android.media.MediaPlayer.setDataSource:(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljava/util/List;)V
        13: .line 1165
            return
        end local 5 // java.lang.String[] values
        end local 4 // java.lang.String[] keys
        end local 3 // java.util.List cookies
        end local 2 // java.util.Map headers
        end local 1 // java.lang.String path
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Landroid/media/MediaPlayer;
            0   14     1     path  Ljava/lang/String;
            0   14     2  headers  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   14     3  cookies  Ljava/util/List<Ljava/net/HttpCookie;>;
            1   14     4     keys  [Ljava/lang/String;
            2   14     5   values  [Ljava/lang/String;
            6   12     6        i  I
            8   11     7    entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
    Exceptions:
      throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.SecurityException, java.lang.IllegalStateException
    Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/util/List<Ljava/net/HttpCookie;>;)V
    MethodParameters:
         Name  Flags
      path     
      headers  
      cookies  

  private void setDataSource(java.lang.String, java.lang.String[], java.lang.String[], java.util.List<java.net.HttpCookie>);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.lang.String path
        start local 2 // java.lang.String[] keys
        start local 3 // java.lang.String[] values
        start local 4 // java.util.List cookies
         0: .line 1170
            aload 1 /* path */
            invokestatic android.net.Uri.parse:(Ljava/lang/String;)Landroid/net/Uri;
            astore 5 /* uri */
        start local 5 // android.net.Uri uri
         1: .line 1171
            aload 5 /* uri */
            invokevirtual android.net.Uri.getScheme:()Ljava/lang/String;
            astore 6 /* scheme */
        start local 6 // java.lang.String scheme
         2: .line 1172
            ldc "file"
            aload 6 /* scheme */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 1173
            aload 5 /* uri */
            invokevirtual android.net.Uri.getPath:()Ljava/lang/String;
            astore 1 /* path */
         4: .line 1174
            goto 13
      StackMap locals: android.net.Uri java.lang.String
      StackMap stack:
         5: aload 6 /* scheme */
            ifnull 13
         6: .line 1176
            aload 0 /* this */
         7: .line 1177
            aload 1 /* path */
            aload 4 /* cookies */
            invokestatic android.media.MediaHTTPService.createHttpServiceBinderIfNecessary:(Ljava/lang/String;Ljava/util/List;)Landroid/os/IBinder;
         8: .line 1178
            aload 1 /* path */
         9: .line 1179
            aload 2 /* keys */
        10: .line 1180
            aload 3 /* values */
        11: .line 1176
            invokevirtual android.media.MediaPlayer.nativeSetDataSource:(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
        12: .line 1181
            return
        13: .line 1184
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 7 /* file */
        start local 7 // java.io.File file
        14: .line 1185
            aload 7 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 20
        15: .line 1186
            new java.io.FileInputStream
            dup
            aload 7 /* file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 8 /* is */
        start local 8 // java.io.FileInputStream is
        16: .line 1187
            aload 8 /* is */
            invokevirtual java.io.FileInputStream.getFD:()Ljava/io/FileDescriptor;
            astore 9 /* fd */
        start local 9 // java.io.FileDescriptor fd
        17: .line 1188
            aload 0 /* this */
            aload 9 /* fd */
            invokevirtual android.media.MediaPlayer.setDataSource:(Ljava/io/FileDescriptor;)V
        18: .line 1189
            aload 8 /* is */
            invokevirtual java.io.FileInputStream.close:()V
        end local 9 // java.io.FileDescriptor fd
        end local 8 // java.io.FileInputStream is
        19: .line 1190
            goto 21
        20: .line 1191
      StackMap locals: java.io.File
      StackMap stack:
            new java.io.IOException
            dup
            ldc "setDataSource failed."
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 1193
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.io.File file
        end local 6 // java.lang.String scheme
        end local 5 // android.net.Uri uri
        end local 4 // java.util.List cookies
        end local 3 // java.lang.String[] values
        end local 2 // java.lang.String[] keys
        end local 1 // java.lang.String path
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Landroid/media/MediaPlayer;
            0   22     1     path  Ljava/lang/String;
            0   22     2     keys  [Ljava/lang/String;
            0   22     3   values  [Ljava/lang/String;
            0   22     4  cookies  Ljava/util/List<Ljava/net/HttpCookie;>;
            1   22     5      uri  Landroid/net/Uri;
            2   22     6   scheme  Ljava/lang/String;
           14   22     7     file  Ljava/io/File;
           16   19     8       is  Ljava/io/FileInputStream;
           17   19     9       fd  Ljava/io/FileDescriptor;
    Exceptions:
      throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.SecurityException, java.lang.IllegalStateException
    Signature: (Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljava/util/List<Ljava/net/HttpCookie;>;)V
    MethodParameters:
         Name  Flags
      path     
      keys     
      values   
      cookies  

  private native void nativeSetDataSource(android.os.IBinder, java.lang.String, java.lang.String[], java.lang.String[]);
    descriptor: (Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.SecurityException, java.lang.IllegalStateException
    MethodParameters:
                   Name  Flags
      httpServiceBinder  
      path               
      keys               
      values             

  public void setDataSource(android.content.res.AssetFileDescriptor);
    descriptor: (Landroid/content/res/AssetFileDescriptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.content.res.AssetFileDescriptor afd
         0: .line 1211
            aload 1 /* afd */
            invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1215
            aload 1 /* afd */
            invokevirtual android.content.res.AssetFileDescriptor.getDeclaredLength:()J
            lconst_0
            lcmp
            ifge 4
         2: .line 1216
            aload 0 /* this */
            aload 1 /* afd */
            invokevirtual android.content.res.AssetFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
            invokevirtual android.media.MediaPlayer.setDataSource:(Ljava/io/FileDescriptor;)V
         3: .line 1217
            goto 5
         4: .line 1218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* afd */
            invokevirtual android.content.res.AssetFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
            aload 1 /* afd */
            invokevirtual android.content.res.AssetFileDescriptor.getStartOffset:()J
            aload 1 /* afd */
            invokevirtual android.content.res.AssetFileDescriptor.getDeclaredLength:()J
            invokevirtual android.media.MediaPlayer.setDataSource:(Ljava/io/FileDescriptor;JJ)V
         5: .line 1220
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.content.res.AssetFileDescriptor afd
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/media/MediaPlayer;
            0    6     1   afd  Landroid/content/res/AssetFileDescriptor;
    Exceptions:
      throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    MethodParameters:
      Name  Flags
      afd   

  public void setDataSource(java.io.FileDescriptor);
    descriptor: (Ljava/io/FileDescriptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.io.FileDescriptor fd
         0: .line 1234
            aload 0 /* this */
            aload 1 /* fd */
            lconst_0
            ldc 576460752303423487
            invokevirtual android.media.MediaPlayer.setDataSource:(Ljava/io/FileDescriptor;JJ)V
         1: .line 1235
            return
        end local 1 // java.io.FileDescriptor fd
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaPlayer;
            0    2     1    fd  Ljava/io/FileDescriptor;
    Exceptions:
      throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    MethodParameters:
      Name  Flags
      fd    

  public void setDataSource(java.io.FileDescriptor, long, long);
    descriptor: (Ljava/io/FileDescriptor;JJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // long offset
        start local 4 // long length
         0: .line 1251
            aload 0 /* this */
            aload 1 /* fd */
            lload 2 /* offset */
            lload 4 /* length */
            invokevirtual android.media.MediaPlayer._setDataSource:(Ljava/io/FileDescriptor;JJ)V
         1: .line 1252
            return
        end local 4 // long length
        end local 2 // long offset
        end local 1 // java.io.FileDescriptor fd
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/media/MediaPlayer;
            0    2     1      fd  Ljava/io/FileDescriptor;
            0    2     2  offset  J
            0    2     4  length  J
    Exceptions:
      throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    MethodParameters:
        Name  Flags
      fd      
      offset  
      length  

  private native void _setDataSource(java.io.FileDescriptor, long, long);
    descriptor: (Ljava/io/FileDescriptor;JJ)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    MethodParameters:
        Name  Flags
      fd      
      offset  
      length  

  public void setDataSource(android.media.MediaDataSource);
    descriptor: (Landroid/media/MediaDataSource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaDataSource dataSource
         0: .line 1266
            aload 0 /* this */
            aload 1 /* dataSource */
            invokevirtual android.media.MediaPlayer._setDataSource:(Landroid/media/MediaDataSource;)V
         1: .line 1267
            return
        end local 1 // android.media.MediaDataSource dataSource
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/media/MediaPlayer;
            0    2     1  dataSource  Landroid/media/MediaDataSource;
    Exceptions:
      throws java.lang.IllegalArgumentException, java.lang.IllegalStateException
    MethodParameters:
            Name  Flags
      dataSource  

  private native void _setDataSource(android.media.MediaDataSource);
    descriptor: (Landroid/media/MediaDataSource;)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.lang.IllegalArgumentException, java.lang.IllegalStateException
    MethodParameters:
            Name  Flags
      dataSource  

  public void prepare();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1282
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer._prepare:()V
         1: .line 1283
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.scanInternalSubtitleTracks:()V
         2: .line 1286
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 1287
            aload 0 /* this */
            iconst_1
            putfield android.media.MediaPlayer.mDrmInfoResolved:Z
         4: .line 1286
            aload 1
            monitorexit
         5: goto 8
      StackMap locals: android.media.MediaPlayer java.lang.Object
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 1289
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Landroid/media/MediaPlayer;
      Exception table:
        from    to  target  type
           3     5       6  any
           6     7       6  any
    Exceptions:
      throws java.io.IOException, java.lang.IllegalStateException

  private native void _prepare();
    descriptor: ()V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.io.IOException, java.lang.IllegalStateException

  public native void prepareAsync();
    descriptor: ()V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Exceptions:
      throws java.lang.IllegalStateException

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1315
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.getStartDelayMs:()I
            istore 1 /* delay */
        start local 1 // int delay
         1: .line 1316
            iload 1 /* delay */
            ifne 4
         2: .line 1317
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.startImpl:()V
         3: .line 1318
            goto 6
         4: .line 1319
      StackMap locals: int
      StackMap stack:
            new android.media.MediaPlayer$3
            dup
            aload 0 /* this */
            iload 1 /* delay */
            invokespecial android.media.MediaPlayer$3.<init>:(Landroid/media/MediaPlayer;I)V
         5: .line 1335
            invokevirtual android.media.MediaPlayer$3.start:()V
         6: .line 1337
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int delay
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Landroid/media/MediaPlayer;
            1    7     1  delay  I
    Exceptions:
      throws java.lang.IllegalStateException

  private void startImpl();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1340
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.baseStart:()V
         1: .line 1341
            aload 0 /* this */
            iconst_1
            invokevirtual android.media.MediaPlayer.stayAwake:(Z)V
         2: .line 1342
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer._start:()V
         3: .line 1343
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/media/MediaPlayer;

  private native void _start();
    descriptor: ()V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.lang.IllegalStateException

  private int getAudioStreamType();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1349
            aload 0 /* this */
            getfield android.media.MediaPlayer.mStreamType:I
            ldc -2147483648
            if_icmpne 2
         1: .line 1350
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer._getAudioStreamType:()I
            putfield android.media.MediaPlayer.mStreamType:I
         2: .line 1352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mStreamType:I
            ireturn
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/media/MediaPlayer;

  private native int _getAudioStreamType();
    descriptor: ()I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.lang.IllegalStateException

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1364
            aload 0 /* this */
            iconst_0
            invokevirtual android.media.MediaPlayer.stayAwake:(Z)V
         1: .line 1365
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer._stop:()V
         2: .line 1366
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.baseStop:()V
         3: .line 1367
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/media/MediaPlayer;
    Exceptions:
      throws java.lang.IllegalStateException

  private native void _stop();
    descriptor: ()V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.lang.IllegalStateException

  public void pause();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1378
            aload 0 /* this */
            iconst_0
            invokevirtual android.media.MediaPlayer.stayAwake:(Z)V
         1: .line 1379
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer._pause:()V
         2: .line 1380
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.basePause:()V
         3: .line 1381
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/media/MediaPlayer;
    Exceptions:
      throws java.lang.IllegalStateException

  private native void _pause();
    descriptor: ()V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.lang.IllegalStateException

  void playerStart();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1387
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.start:()V
         1: .line 1388
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaPlayer;

  void playerPause();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1392
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.pause:()V
         1: .line 1393
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaPlayer;

  void playerStop();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1397
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.stop:()V
         1: .line 1398
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaPlayer;

  int playerApplyVolumeShaper(android.media.VolumeShaper$Configuration, android.media.VolumeShaper$Operation);
    descriptor: (Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)I
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.VolumeShaper$Configuration configuration
        start local 2 // android.media.VolumeShaper$Operation operation
         0: .line 1404
            aload 0 /* this */
            aload 1 /* configuration */
            aload 2 /* operation */
            invokevirtual android.media.MediaPlayer.native_applyVolumeShaper:(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)I
            ireturn
        end local 2 // android.media.VolumeShaper$Operation operation
        end local 1 // android.media.VolumeShaper$Configuration configuration
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Landroid/media/MediaPlayer;
            0    1     1  configuration  Landroid/media/VolumeShaper$Configuration;
            0    1     2      operation  Landroid/media/VolumeShaper$Operation;
    MethodParameters:
               Name  Flags
      configuration  
      operation      

  android.media.VolumeShaper$State playerGetVolumeShaperState(int);
    descriptor: (I)Landroid/media/VolumeShaper$State;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // int id
         0: .line 1409
            aload 0 /* this */
            iload 1 /* id */
            invokevirtual android.media.MediaPlayer.native_getVolumeShaperState:(I)Landroid/media/VolumeShaper$State;
            areturn
        end local 1 // int id
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaPlayer;
            0    1     1    id  I
    MethodParameters:
      Name  Flags
      id    

  public android.media.VolumeShaper createVolumeShaper(android.media.VolumeShaper$Configuration);
    descriptor: (Landroid/media/VolumeShaper$Configuration;)Landroid/media/VolumeShaper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.VolumeShaper$Configuration configuration
         0: .line 1415
            new android.media.VolumeShaper
            dup
            aload 1 /* configuration */
            aload 0 /* this */
            invokespecial android.media.VolumeShaper.<init>:(Landroid/media/VolumeShaper$Configuration;Landroid/media/PlayerBase;)V
            areturn
        end local 1 // android.media.VolumeShaper$Configuration configuration
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Landroid/media/MediaPlayer;
            0    1     1  configuration  Landroid/media/VolumeShaper$Configuration;
    MethodParameters:
               Name  Flags
      configuration  

  private native int native_applyVolumeShaper(android.media.VolumeShaper$Configuration, android.media.VolumeShaper$Operation);
    descriptor: (Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      configuration  
      operation      

  private native android.media.VolumeShaper$State native_getVolumeShaperState(int);
    descriptor: (I)Landroid/media/VolumeShaper$State;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
      Name  Flags
      id    

  public boolean setPreferredDevice(android.media.AudioDeviceInfo);
    descriptor: (Landroid/media/AudioDeviceInfo;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.AudioDeviceInfo deviceInfo
         0: .line 1439
            aload 1 /* deviceInfo */
            ifnull 2
            aload 1 /* deviceInfo */
            invokevirtual android.media.AudioDeviceInfo.isSink:()Z
            ifne 2
         1: .line 1440
            iconst_0
            ireturn
         2: .line 1442
      StackMap locals:
      StackMap stack:
            aload 1 /* deviceInfo */
            ifnull 3
            aload 1 /* deviceInfo */
            invokevirtual android.media.AudioDeviceInfo.getId:()I
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 2 /* preferredDeviceId */
        start local 2 // int preferredDeviceId
         5: .line 1443
            aload 0 /* this */
            iload 2 /* preferredDeviceId */
            invokevirtual android.media.MediaPlayer.native_setOutputDevice:(I)Z
            istore 3 /* status */
        start local 3 // boolean status
         6: .line 1444
            iload 3 /* status */
            ifeq 13
         7: .line 1445
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         8: .line 1446
            aload 0 /* this */
            aload 1 /* deviceInfo */
            putfield android.media.MediaPlayer.mPreferredDevice:Landroid/media/AudioDeviceInfo;
         9: .line 1445
            aload 4
            monitorexit
        10: goto 13
      StackMap locals: android.media.MediaPlayer android.media.AudioDeviceInfo int int android.media.MediaPlayer
      StackMap stack: java.lang.Throwable
        11: aload 4
            monitorexit
        12: athrow
        13: .line 1449
      StackMap locals:
      StackMap stack:
            iload 3 /* status */
            ireturn
        end local 3 // boolean status
        end local 2 // int preferredDeviceId
        end local 1 // android.media.AudioDeviceInfo deviceInfo
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0               this  Landroid/media/MediaPlayer;
            0   14     1         deviceInfo  Landroid/media/AudioDeviceInfo;
            5   14     2  preferredDeviceId  I
            6   14     3             status  Z
      Exception table:
        from    to  target  type
           8    10      11  any
          11    12      11  any
    MethodParameters:
            Name  Flags
      deviceInfo  

  public android.media.AudioDeviceInfo getPreferredDevice();
    descriptor: ()Landroid/media/AudioDeviceInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1458
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 1459
            aload 0 /* this */
            getfield android.media.MediaPlayer.mPreferredDevice:Landroid/media/AudioDeviceInfo;
            aload 1
            monitorexit
         2: areturn
         3: .line 1458
      StackMap locals: android.media.MediaPlayer android.media.MediaPlayer
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/media/MediaPlayer;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public android.media.AudioDeviceInfo getRoutedDevice();
    descriptor: ()Landroid/media/AudioDeviceInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1471
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.native_getRoutedDeviceId:()I
            istore 1 /* deviceId */
        start local 1 // int deviceId
         1: .line 1472
            iload 1 /* deviceId */
            ifne 3
         2: .line 1473
            aconst_null
            areturn
         3: .line 1476
      StackMap locals: int
      StackMap stack:
            iconst_2
            invokestatic android.media.AudioManager.getDevicesStatic:(I)[Landroid/media/AudioDeviceInfo;
         4: .line 1475
            astore 2 /* devices */
        start local 2 // android.media.AudioDeviceInfo[] devices
         5: .line 1477
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         6: goto 10
         7: .line 1478
      StackMap locals: android.media.AudioDeviceInfo[] int
      StackMap stack:
            aload 2 /* devices */
            iload 3 /* i */
            aaload
            invokevirtual android.media.AudioDeviceInfo.getId:()I
            iload 1 /* deviceId */
            if_icmpne 9
         8: .line 1479
            aload 2 /* devices */
            iload 3 /* i */
            aaload
            areturn
         9: .line 1477
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            aload 2 /* devices */
            arraylength
            if_icmplt 7
        end local 3 // int i
        11: .line 1482
            aconst_null
            areturn
        end local 2 // android.media.AudioDeviceInfo[] devices
        end local 1 // int deviceId
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Landroid/media/MediaPlayer;
            1   12     1  deviceId  I
            5   12     2   devices  [Landroid/media/AudioDeviceInfo;
            6   11     3         i  I

  private void enableNativeRoutingCallbacksLocked(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // boolean enabled
         0: .line 1490
            aload 0 /* this */
            getfield android.media.MediaPlayer.mRoutingChangeListeners:Landroid/util/ArrayMap;
            invokevirtual android.util.ArrayMap.size:()I
            ifne 2
         1: .line 1491
            aload 0 /* this */
            iload 1 /* enabled */
            invokevirtual android.media.MediaPlayer.native_enableDeviceCallback:(Z)V
         2: .line 1493
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean enabled
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Landroid/media/MediaPlayer;
            0    3     1  enabled  Z
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.GuardedBy(value = "mRoutingChangeListeners")
    MethodParameters:
         Name  Flags
      enabled  

  public void addOnRoutingChangedListener(android.media.AudioRouting$OnRoutingChangedListener, android.os.Handler);
    descriptor: (Landroid/media/AudioRouting$OnRoutingChangedListener;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.AudioRouting$OnRoutingChangedListener listener
        start local 2 // android.os.Handler handler
         0: .line 1515
            aload 0 /* this */
            getfield android.media.MediaPlayer.mRoutingChangeListeners:Landroid/util/ArrayMap;
            dup
            astore 3
            monitorenter
         1: .line 1516
            aload 1 /* listener */
            ifnull 10
            aload 0 /* this */
            getfield android.media.MediaPlayer.mRoutingChangeListeners:Landroid/util/ArrayMap;
            aload 1 /* listener */
            invokevirtual android.util.ArrayMap.containsKey:(Ljava/lang/Object;)Z
            ifne 10
         2: .line 1517
            aload 0 /* this */
            iconst_1
            invokevirtual android.media.MediaPlayer.enableNativeRoutingCallbacksLocked:(Z)V
         3: .line 1518
            aload 0 /* this */
            getfield android.media.MediaPlayer.mRoutingChangeListeners:Landroid/util/ArrayMap;
         4: .line 1519
            aload 1 /* listener */
         5: new android.media.NativeRoutingEventHandlerDelegate
            dup
            aload 0 /* this */
            aload 1 /* listener */
         6: .line 1520
            aload 2 /* handler */
            ifnull 7
            aload 2 /* handler */
            goto 8
      StackMap locals: android.media.MediaPlayer android.media.AudioRouting$OnRoutingChangedListener android.os.Handler android.util.ArrayMap
      StackMap stack: android.util.ArrayMap android.media.AudioRouting$OnRoutingChangedListener new 5 new 5 android.media.MediaPlayer android.media.AudioRouting$OnRoutingChangedListener
         7: aload 0 /* this */
            getfield android.media.MediaPlayer.mEventHandler:Landroid/media/MediaPlayer$EventHandler;
      StackMap locals: android.media.MediaPlayer android.media.AudioRouting$OnRoutingChangedListener android.os.Handler android.util.ArrayMap
      StackMap stack: android.util.ArrayMap android.media.AudioRouting$OnRoutingChangedListener new 5 new 5 android.media.MediaPlayer android.media.AudioRouting$OnRoutingChangedListener android.os.Handler
         8: invokespecial android.media.NativeRoutingEventHandlerDelegate.<init>:(Landroid/media/AudioRouting;Landroid/media/AudioRouting$OnRoutingChangedListener;Landroid/os/Handler;)V
         9: .line 1518
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1515
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 3
            monitorexit
        13: athrow
        14: .line 1523
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.media.AudioRouting$OnRoutingChangedListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Landroid/media/MediaPlayer;
            0   15     1  listener  Landroid/media/AudioRouting$OnRoutingChangedListener;
            0   15     2   handler  Landroid/os/Handler;
      Exception table:
        from    to  target  type
           1    11      12  any
          12    13      12  any
    MethodParameters:
          Name  Flags
      listener  
      handler   

  public void removeOnRoutingChangedListener(android.media.AudioRouting$OnRoutingChangedListener);
    descriptor: (Landroid/media/AudioRouting$OnRoutingChangedListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.AudioRouting$OnRoutingChangedListener listener
         0: .line 1533
            aload 0 /* this */
            getfield android.media.MediaPlayer.mRoutingChangeListeners:Landroid/util/ArrayMap;
            dup
            astore 2
            monitorenter
         1: .line 1534
            aload 0 /* this */
            getfield android.media.MediaPlayer.mRoutingChangeListeners:Landroid/util/ArrayMap;
            aload 1 /* listener */
            invokevirtual android.util.ArrayMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 1535
            aload 0 /* this */
            getfield android.media.MediaPlayer.mRoutingChangeListeners:Landroid/util/ArrayMap;
            aload 1 /* listener */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 1536
            aload 0 /* this */
            iconst_0
            invokevirtual android.media.MediaPlayer.enableNativeRoutingCallbacksLocked:(Z)V
         4: .line 1533
      StackMap locals: android.util.ArrayMap
      StackMap stack:
            aload 2
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 1539
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.AudioRouting$OnRoutingChangedListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Landroid/media/MediaPlayer;
            0    9     1  listener  Landroid/media/AudioRouting$OnRoutingChangedListener;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    MethodParameters:
          Name  Flags
      listener  

  private final native boolean native_setOutputDevice(int);
    descriptor: (I)Z
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
          Name  Flags
      deviceId  

  private final native int native_getRoutedDeviceId();
    descriptor: ()I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE

  private final native void native_enableDeviceCallback(boolean);
    descriptor: (Z)V
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
         Name  Flags
      enabled  

  public void setWakeMode(android.content.Context, int);
    descriptor: (Landroid/content/Context;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.content.Context context
        start local 2 // int mode
         0: .line 1563
            iconst_0
            istore 3 /* washeld */
        start local 3 // boolean washeld
         1: .line 1566
            ldc "audio.offload.ignore_setawake"
            iconst_0
            invokestatic android.os.SystemProperties.getBoolean:(Ljava/lang/String;Z)Z
            ifeq 4
         2: .line 1567
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "IGNORING setWakeMode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* mode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         3: .line 1568
            return
         4: .line 1571
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mWakeLock:Landroid/os/PowerManager$WakeLock;
            ifnull 9
         5: .line 1572
            aload 0 /* this */
            getfield android.media.MediaPlayer.mWakeLock:Landroid/os/PowerManager$WakeLock;
            invokevirtual android.os.PowerManager$WakeLock.isHeld:()Z
            ifeq 8
         6: .line 1573
            iconst_1
            istore 3 /* washeld */
         7: .line 1574
            aload 0 /* this */
            getfield android.media.MediaPlayer.mWakeLock:Landroid/os/PowerManager$WakeLock;
            invokevirtual android.os.PowerManager$WakeLock.release:()V
         8: .line 1576
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mWakeLock:Landroid/os/PowerManager$WakeLock;
         9: .line 1579
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            ldc "power"
            invokevirtual android.content.Context.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast android.os.PowerManager
            astore 4 /* pm */
        start local 4 // android.os.PowerManager pm
        10: .line 1580
            aload 0 /* this */
            aload 4 /* pm */
            iload 2 /* mode */
            ldc 536870912
            ior
            ldc Landroid/media/MediaPlayer;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual android.os.PowerManager.newWakeLock:(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;
            putfield android.media.MediaPlayer.mWakeLock:Landroid/os/PowerManager$WakeLock;
        11: .line 1581
            aload 0 /* this */
            getfield android.media.MediaPlayer.mWakeLock:Landroid/os/PowerManager$WakeLock;
            iconst_0
            invokevirtual android.os.PowerManager$WakeLock.setReferenceCounted:(Z)V
        12: .line 1582
            iload 3 /* washeld */
            ifeq 14
        13: .line 1583
            aload 0 /* this */
            getfield android.media.MediaPlayer.mWakeLock:Landroid/os/PowerManager$WakeLock;
            invokevirtual android.os.PowerManager$WakeLock.acquire:()V
        14: .line 1585
      StackMap locals: android.os.PowerManager
      StackMap stack:
            return
        end local 4 // android.os.PowerManager pm
        end local 3 // boolean washeld
        end local 2 // int mode
        end local 1 // android.content.Context context
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Landroid/media/MediaPlayer;
            0   15     1  context  Landroid/content/Context;
            0   15     2     mode  I
            1   15     3  washeld  Z
           10   15     4       pm  Landroid/os/PowerManager;
    MethodParameters:
         Name  Flags
      context  
      mode     

  public void setScreenOnWhilePlaying(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // boolean screenOn
         0: .line 1598
            aload 0 /* this */
            getfield android.media.MediaPlayer.mScreenOnWhilePlaying:Z
            iload 1 /* screenOn */
            if_icmpeq 5
         1: .line 1599
            iload 1 /* screenOn */
            ifeq 3
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSurfaceHolder:Landroid/view/SurfaceHolder;
            ifnonnull 3
         2: .line 1600
            ldc "MediaPlayer"
            ldc "setScreenOnWhilePlaying(true) is ineffective without a SurfaceHolder"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         3: .line 1602
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* screenOn */
            putfield android.media.MediaPlayer.mScreenOnWhilePlaying:Z
         4: .line 1603
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.updateSurfaceScreenOn:()V
         5: .line 1605
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean screenOn
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Landroid/media/MediaPlayer;
            0    6     1  screenOn  Z
    MethodParameters:
          Name  Flags
      screenOn  

  private void stayAwake(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // boolean awake
         0: .line 1608
            aload 0 /* this */
            getfield android.media.MediaPlayer.mWakeLock:Landroid/os/PowerManager$WakeLock;
            ifnull 6
         1: .line 1609
            iload 1 /* awake */
            ifeq 4
            aload 0 /* this */
            getfield android.media.MediaPlayer.mWakeLock:Landroid/os/PowerManager$WakeLock;
            invokevirtual android.os.PowerManager$WakeLock.isHeld:()Z
            ifne 4
         2: .line 1610
            aload 0 /* this */
            getfield android.media.MediaPlayer.mWakeLock:Landroid/os/PowerManager$WakeLock;
            invokevirtual android.os.PowerManager$WakeLock.acquire:()V
         3: .line 1611
            goto 6
      StackMap locals:
      StackMap stack:
         4: iload 1 /* awake */
            ifne 6
            aload 0 /* this */
            getfield android.media.MediaPlayer.mWakeLock:Landroid/os/PowerManager$WakeLock;
            invokevirtual android.os.PowerManager$WakeLock.isHeld:()Z
            ifeq 6
         5: .line 1612
            aload 0 /* this */
            getfield android.media.MediaPlayer.mWakeLock:Landroid/os/PowerManager$WakeLock;
            invokevirtual android.os.PowerManager$WakeLock.release:()V
         6: .line 1615
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* awake */
            putfield android.media.MediaPlayer.mStayAwake:Z
         7: .line 1616
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.updateSurfaceScreenOn:()V
         8: .line 1617
            return
        end local 1 // boolean awake
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Landroid/media/MediaPlayer;
            0    9     1  awake  Z
    MethodParameters:
       Name  Flags
      awake  

  private void updateSurfaceScreenOn();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1620
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSurfaceHolder:Landroid/view/SurfaceHolder;
            ifnull 4
         1: .line 1621
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSurfaceHolder:Landroid/view/SurfaceHolder;
            aload 0 /* this */
            getfield android.media.MediaPlayer.mScreenOnWhilePlaying:Z
            ifeq 2
            aload 0 /* this */
            getfield android.media.MediaPlayer.mStayAwake:Z
            ifeq 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack: android.view.SurfaceHolder
         2: iconst_0
      StackMap locals: android.media.MediaPlayer
      StackMap stack: android.view.SurfaceHolder int
         3: invokeinterface android.view.SurfaceHolder.setKeepScreenOn:(Z)V
         4: .line 1623
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/media/MediaPlayer;

  public native int getVideoWidth();
    descriptor: ()I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public native int getVideoHeight();
    descriptor: ()I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public android.os.PersistableBundle getMetrics();
    descriptor: ()Landroid/os/PersistableBundle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1658
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.native_getMetrics:()Landroid/os/PersistableBundle;
            astore 1 /* bundle */
        start local 1 // android.os.PersistableBundle bundle
         1: .line 1659
            aload 1 /* bundle */
            areturn
        end local 1 // android.os.PersistableBundle bundle
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/media/MediaPlayer;
            1    2     1  bundle  Landroid/os/PersistableBundle;

  private native android.os.PersistableBundle native_getMetrics();
    descriptor: ()Landroid/os/PersistableBundle;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  public native boolean isPlaying();
    descriptor: ()Z
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public native android.media.BufferingParams getBufferingParams();
    descriptor: ()Landroid/media/BufferingParams;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public native void setBufferingParams(android.media.BufferingParams);
    descriptor: (Landroid/media/BufferingParams;)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      params  

  public android.media.PlaybackParams easyPlaybackParams(float, int);
    descriptor: (FI)Landroid/media/PlaybackParams;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // float rate
        start local 2 // int audioMode
         0: .line 1770
            new android.media.PlaybackParams
            dup
            invokespecial android.media.PlaybackParams.<init>:()V
            astore 3 /* params */
        start local 3 // android.media.PlaybackParams params
         1: .line 1771
            aload 3 /* params */
            invokevirtual android.media.PlaybackParams.allowDefaults:()Landroid/media/PlaybackParams;
            pop
         2: .line 1772
            iload 2 /* audioMode */
            tableswitch { // 0 - 2
                    0: 3
                    1: 5
                    2: 8
              default: 10
          }
         3: .line 1774
      StackMap locals: android.media.PlaybackParams
      StackMap stack:
            aload 3 /* params */
            fload 1 /* rate */
            invokevirtual android.media.PlaybackParams.setSpeed:(F)Landroid/media/PlaybackParams;
            fconst_1
            invokevirtual android.media.PlaybackParams.setPitch:(F)Landroid/media/PlaybackParams;
            pop
         4: .line 1775
            goto 12
         5: .line 1777
      StackMap locals:
      StackMap stack:
            aload 3 /* params */
            fload 1 /* rate */
            invokevirtual android.media.PlaybackParams.setSpeed:(F)Landroid/media/PlaybackParams;
            fconst_1
            invokevirtual android.media.PlaybackParams.setPitch:(F)Landroid/media/PlaybackParams;
         6: .line 1778
            iconst_2
            invokevirtual android.media.PlaybackParams.setAudioFallbackMode:(I)Landroid/media/PlaybackParams;
            pop
         7: .line 1779
            goto 12
         8: .line 1781
      StackMap locals:
      StackMap stack:
            aload 3 /* params */
            fload 1 /* rate */
            invokevirtual android.media.PlaybackParams.setSpeed:(F)Landroid/media/PlaybackParams;
            fload 1 /* rate */
            invokevirtual android.media.PlaybackParams.setPitch:(F)Landroid/media/PlaybackParams;
            pop
         9: .line 1782
            goto 12
        10: .line 1784
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Audio playback mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* audioMode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " is not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* msg */
        start local 4 // java.lang.String msg
        11: .line 1785
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* msg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String msg
        12: .line 1787
      StackMap locals:
      StackMap stack:
            aload 3 /* params */
            areturn
        end local 3 // android.media.PlaybackParams params
        end local 2 // int audioMode
        end local 1 // float rate
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Landroid/media/MediaPlayer;
            0   13     1       rate  F
            0   13     2  audioMode  I
            1   13     3     params  Landroid/media/PlaybackParams;
           11   12     4        msg  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      rate       
      audioMode  

  public native void setPlaybackParams(android.media.PlaybackParams);
    descriptor: (Landroid/media/PlaybackParams;)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      params  

  public native android.media.PlaybackParams getPlaybackParams();
    descriptor: ()Landroid/media/PlaybackParams;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public native void setSyncParams(android.media.SyncParams);
    descriptor: (Landroid/media/SyncParams;)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      params  

  public native android.media.SyncParams getSyncParams();
    descriptor: ()Landroid/media/SyncParams;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  private final native void _seekTo(long, int);
    descriptor: (JI)V
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
      Name  Flags
      msec  
      mode  

  public void seekTo(long, int);
    descriptor: (JI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // long msec
        start local 3 // int mode
         0: .line 1923
            iload 3 /* mode */
            iflt 1
            iload 3 /* mode */
            iconst_3
            if_icmple 3
         1: .line 1924
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Illegal seek mode: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* mode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* msg */
        start local 4 // java.lang.String msg
         2: .line 1925
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* msg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String msg
         3: .line 1928
      StackMap locals:
      StackMap stack:
            lload 1 /* msec */
            ldc 2147483647
            lcmp
            ifle 7
         4: .line 1929
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "seekTo offset "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* msec */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " is too large, cap to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc 2147483647
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 1930
            ldc 2147483647
            lstore 1 /* msec */
         6: .line 1931
            goto 10
      StackMap locals:
      StackMap stack:
         7: lload 1 /* msec */
            ldc -2147483648
            lcmp
            ifge 10
         8: .line 1932
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "seekTo offset "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* msec */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " is too small, cap to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc -2147483648
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 1933
            ldc -2147483648
            lstore 1 /* msec */
        10: .line 1935
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* msec */
            iload 3 /* mode */
            invokevirtual android.media.MediaPlayer._seekTo:(JI)V
        11: .line 1936
            return
        end local 3 // int mode
        end local 1 // long msec
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Landroid/media/MediaPlayer;
            0   12     1  msec  J
            0   12     3  mode  I
            2    3     4   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      msec  
      mode  

  public void seekTo(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // int msec
         0: .line 1947
            aload 0 /* this */
            iload 1 /* msec */
            i2l
            iconst_0
            invokevirtual android.media.MediaPlayer.seekTo:(JI)V
         1: .line 1948
            return
        end local 1 // int msec
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaPlayer;
            0    2     1  msec  I
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
      Name  Flags
      msec  

  public android.media.MediaTimestamp getTimestamp();
    descriptor: ()Landroid/media/MediaTimestamp;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 1973
            new android.media.MediaTimestamp
            dup
         1: .line 1974
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.getCurrentPosition:()I
            i2l
            ldc 1000
            lmul
         2: .line 1975
            invokestatic java.lang.System.nanoTime:()J
         3: .line 1976
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.isPlaying:()Z
            ifeq 4
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.getPlaybackParams:()Landroid/media/PlaybackParams;
            invokevirtual android.media.PlaybackParams.getSpeed:()F
            goto 5
      StackMap locals: android.media.MediaPlayer
      StackMap stack: new 0 new 0 long long
         4: fconst_0
         5: .line 1973
      StackMap locals: android.media.MediaPlayer
      StackMap stack: new 0 new 0 long long float
            invokespecial android.media.MediaTimestamp.<init>:(JJF)V
         6: areturn
         7: .line 1977
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            pop
         8: .line 1978
            aconst_null
            areturn
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Landroid/media/MediaPlayer;
      Exception table:
        from    to  target  type
           0     6       7  Class java.lang.IllegalStateException

  public native int getCurrentPosition();
    descriptor: ()I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public native int getDuration();
    descriptor: ()I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public android.media.Metadata getMetadata(boolean, boolean);
    descriptor: (ZZ)Landroid/media/Metadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // boolean update_only
        start local 2 // boolean apply_filter
         0: .line 2015
            invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
            astore 3 /* reply */
        start local 3 // android.os.Parcel reply
         1: .line 2016
            new android.media.Metadata
            dup
            invokespecial android.media.Metadata.<init>:()V
            astore 4 /* data */
        start local 4 // android.media.Metadata data
         2: .line 2018
            aload 0 /* this */
            iload 1 /* update_only */
            iload 2 /* apply_filter */
            aload 3 /* reply */
            invokevirtual android.media.MediaPlayer.native_getMetadata:(ZZLandroid/os/Parcel;)Z
            ifne 5
         3: .line 2019
            aload 3 /* reply */
            invokevirtual android.os.Parcel.recycle:()V
         4: .line 2020
            aconst_null
            areturn
         5: .line 2025
      StackMap locals: android.os.Parcel android.media.Metadata
      StackMap stack:
            aload 4 /* data */
            aload 3 /* reply */
            invokevirtual android.media.Metadata.parse:(Landroid/os/Parcel;)Z
            ifne 8
         6: .line 2026
            aload 3 /* reply */
            invokevirtual android.os.Parcel.recycle:()V
         7: .line 2027
            aconst_null
            areturn
         8: .line 2029
      StackMap locals:
      StackMap stack:
            aload 4 /* data */
            areturn
        end local 4 // android.media.Metadata data
        end local 3 // android.os.Parcel reply
        end local 2 // boolean apply_filter
        end local 1 // boolean update_only
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Landroid/media/MediaPlayer;
            0    9     1   update_only  Z
            0    9     2  apply_filter  Z
            1    9     3         reply  Landroid/os/Parcel;
            2    9     4          data  Landroid/media/Metadata;
    MethodParameters:
              Name  Flags
      update_only   final
      apply_filter  final

  public int setMetadataFilter(java.util.Set<java.lang.Integer>, java.util.Set<java.lang.Integer>);
    descriptor: (Ljava/util/Set;Ljava/util/Set;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.util.Set allow
        start local 2 // java.util.Set block
         0: .line 2057
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.newRequest:()Landroid/os/Parcel;
            astore 3 /* request */
        start local 3 // android.os.Parcel request
         1: .line 2063
            aload 3 /* request */
            invokevirtual android.os.Parcel.dataSize:()I
            iconst_4
            iconst_1
            aload 1 /* allow */
            invokeinterface java.util.Set.size:()I
            iadd
            iconst_1
            iadd
            aload 2 /* block */
            invokeinterface java.util.Set.size:()I
            iadd
            imul
            iadd
            istore 4 /* capacity */
        start local 4 // int capacity
         2: .line 2065
            aload 3 /* request */
            invokevirtual android.os.Parcel.dataCapacity:()I
            iload 4 /* capacity */
            if_icmpge 4
         3: .line 2066
            aload 3 /* request */
            iload 4 /* capacity */
            invokevirtual android.os.Parcel.setDataCapacity:(I)V
         4: .line 2069
      StackMap locals: android.os.Parcel int
      StackMap stack:
            aload 3 /* request */
            aload 1 /* allow */
            invokeinterface java.util.Set.size:()I
            invokevirtual android.os.Parcel.writeInt:(I)V
         5: .line 2070
            aload 1 /* allow */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 8
      StackMap locals: android.media.MediaPlayer java.util.Set java.util.Set android.os.Parcel int top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 5 /* t */
        start local 5 // java.lang.Integer t
         7: .line 2071
            aload 3 /* request */
            aload 5 /* t */
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual android.os.Parcel.writeInt:(I)V
        end local 5 // java.lang.Integer t
         8: .line 2070
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 2073
            aload 3 /* request */
            aload 2 /* block */
            invokeinterface java.util.Set.size:()I
            invokevirtual android.os.Parcel.writeInt:(I)V
        10: .line 2074
            aload 2 /* block */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 13
      StackMap locals:
      StackMap stack:
        11: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 5 /* t */
        start local 5 // java.lang.Integer t
        12: .line 2075
            aload 3 /* request */
            aload 5 /* t */
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual android.os.Parcel.writeInt:(I)V
        end local 5 // java.lang.Integer t
        13: .line 2074
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 2077
            aload 0 /* this */
            aload 3 /* request */
            invokevirtual android.media.MediaPlayer.native_setMetadataFilter:(Landroid/os/Parcel;)I
            ireturn
        end local 4 // int capacity
        end local 3 // android.os.Parcel request
        end local 2 // java.util.Set block
        end local 1 // java.util.Set allow
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Landroid/media/MediaPlayer;
            0   15     1     allow  Ljava/util/Set<Ljava/lang/Integer;>;
            0   15     2     block  Ljava/util/Set<Ljava/lang/Integer;>;
            1   15     3   request  Landroid/os/Parcel;
            2   15     4  capacity  I
            7    8     5         t  Ljava/lang/Integer;
           12   13     5         t  Ljava/lang/Integer;
    Signature: (Ljava/util/Set<Ljava/lang/Integer;>;Ljava/util/Set<Ljava/lang/Integer;>;)I
    MethodParameters:
       Name  Flags
      allow  
      block  

  public native void setNextMediaPlayer(android.media.MediaPlayer);
    descriptor: (Landroid/media/MediaPlayer;)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      next  

  public void release();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 2119
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.baseRelease:()V
         1: .line 2120
            aload 0 /* this */
            iconst_0
            invokevirtual android.media.MediaPlayer.stayAwake:(Z)V
         2: .line 2121
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.updateSurfaceScreenOn:()V
         3: .line 2122
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnPreparedListener:Landroid/media/MediaPlayer$OnPreparedListener;
         4: .line 2123
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnBufferingUpdateListener:Landroid/media/MediaPlayer$OnBufferingUpdateListener;
         5: .line 2124
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnCompletionListener:Landroid/media/MediaPlayer$OnCompletionListener;
         6: .line 2125
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnSeekCompleteListener:Landroid/media/MediaPlayer$OnSeekCompleteListener;
         7: .line 2126
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnErrorListener:Landroid/media/MediaPlayer$OnErrorListener;
         8: .line 2127
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnInfoListener:Landroid/media/MediaPlayer$OnInfoListener;
         9: .line 2128
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnVideoSizeChangedListener:Landroid/media/MediaPlayer$OnVideoSizeChangedListener;
        10: .line 2129
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnTimedTextListener:Landroid/media/MediaPlayer$OnTimedTextListener;
        11: .line 2130
            aload 0 /* this */
            getfield android.media.MediaPlayer.mTimeProvider:Landroid/media/MediaPlayer$TimeProvider;
            ifnull 14
        12: .line 2131
            aload 0 /* this */
            getfield android.media.MediaPlayer.mTimeProvider:Landroid/media/MediaPlayer$TimeProvider;
            invokevirtual android.media.MediaPlayer$TimeProvider.close:()V
        13: .line 2132
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mTimeProvider:Landroid/media/MediaPlayer$TimeProvider;
        14: .line 2134
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 1
            monitorenter
        15: .line 2135
            aload 0 /* this */
            iconst_0
            putfield android.media.MediaPlayer.mSubtitleDataListenerDisabled:Z
        16: .line 2136
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mExtSubtitleDataListener:Landroid/media/MediaPlayer$OnSubtitleDataListener;
        17: .line 2137
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mExtSubtitleDataHandler:Landroid/os/Handler;
        18: .line 2138
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnMediaTimeDiscontinuityListener:Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;
        19: .line 2139
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnMediaTimeDiscontinuityHandler:Landroid/os/Handler;
        20: .line 2134
            aload 1
            monitorexit
        21: goto 24
      StackMap locals: android.media.MediaPlayer android.media.MediaPlayer
      StackMap stack: java.lang.Throwable
        22: aload 1
            monitorexit
        23: athrow
        24: .line 2143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnDrmConfigHelper:Landroid/media/MediaPlayer$OnDrmConfigHelper;
        25: .line 2144
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnDrmInfoHandlerDelegate:Landroid/media/MediaPlayer$OnDrmInfoHandlerDelegate;
        26: .line 2145
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnDrmPreparedHandlerDelegate:Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;
        27: .line 2146
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.resetDrmState:()V
        28: .line 2148
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer._release:()V
        29: .line 2149
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   30     0  this  Landroid/media/MediaPlayer;
      Exception table:
        from    to  target  type
          15    21      22  any
          22    23      22  any

  private native void _release();
    descriptor: ()V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 2159
            aload 0 /* this */
            iconst_m1
            putfield android.media.MediaPlayer.mSelectedSubtitleTrackIndex:I
         1: .line 2160
            aload 0 /* this */
            getfield android.media.MediaPlayer.mOpenSubtitleSources:Ljava/util/Vector;
            dup
            astore 1
            monitorenter
         2: .line 2161
            aload 0 /* this */
            getfield android.media.MediaPlayer.mOpenSubtitleSources:Ljava/util/Vector;
            invokevirtual java.util.Vector.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: android.media.MediaPlayer java.util.Vector top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.io.InputStream
            astore 2 /* is */
        start local 2 // java.io.InputStream is
         4: .line 2163
            aload 2 /* is */
            invokevirtual java.io.InputStream.close:()V
         5: .line 2164
            goto 7
      StackMap locals: android.media.MediaPlayer java.util.Vector java.io.InputStream java.util.Iterator
      StackMap stack: java.io.IOException
         6: pop
        end local 2 // java.io.InputStream is
         7: .line 2161
      StackMap locals: android.media.MediaPlayer java.util.Vector top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 2167
            aload 0 /* this */
            getfield android.media.MediaPlayer.mOpenSubtitleSources:Ljava/util/Vector;
            invokevirtual java.util.Vector.clear:()V
         9: .line 2160
            aload 1
            monitorexit
        10: goto 13
      StackMap locals: android.media.MediaPlayer java.util.Vector
      StackMap stack: java.lang.Throwable
        11: aload 1
            monitorexit
        12: athrow
        13: .line 2169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
            ifnull 15
        14: .line 2170
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
            invokevirtual android.media.SubtitleController.reset:()V
        15: .line 2172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mTimeProvider:Landroid/media/MediaPlayer$TimeProvider;
            ifnull 18
        16: .line 2173
            aload 0 /* this */
            getfield android.media.MediaPlayer.mTimeProvider:Landroid/media/MediaPlayer$TimeProvider;
            invokevirtual android.media.MediaPlayer$TimeProvider.close:()V
        17: .line 2174
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mTimeProvider:Landroid/media/MediaPlayer$TimeProvider;
        18: .line 2177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual android.media.MediaPlayer.stayAwake:(Z)V
        19: .line 2178
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer._reset:()V
        20: .line 2180
            aload 0 /* this */
            getfield android.media.MediaPlayer.mEventHandler:Landroid/media/MediaPlayer$EventHandler;
            ifnull 22
        21: .line 2181
            aload 0 /* this */
            getfield android.media.MediaPlayer.mEventHandler:Landroid/media/MediaPlayer$EventHandler;
            aconst_null
            invokevirtual android.media.MediaPlayer$EventHandler.removeCallbacksAndMessages:(Ljava/lang/Object;)V
        22: .line 2184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            dup
            astore 1
            monitorenter
        23: .line 2185
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            invokevirtual java.util.Vector.clear:()V
        24: .line 2186
            aload 0 /* this */
            getfield android.media.MediaPlayer.mInbandTrackIndices:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.clear:()V
        25: .line 2184
            aload 1
            monitorexit
        26: goto 29
      StackMap locals: android.media.MediaPlayer java.util.Vector
      StackMap stack: java.lang.Throwable
        27: aload 1
            monitorexit
        28: athrow
        29: .line 2189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.resetDrmState:()V
        30: .line 2190
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   31     0  this  Landroid/media/MediaPlayer;
            4    7     2    is  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
           2    10      11  any
          11    12      11  any
          23    26      27  any
          27    28      27  any

  private native void _reset();
    descriptor: ()V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  public void notifyAt(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // long mediaTimeUs
         0: .line 2203
            aload 0 /* this */
            lload 1 /* mediaTimeUs */
            invokevirtual android.media.MediaPlayer._notifyAt:(J)V
         1: .line 2204
            return
        end local 1 // long mediaTimeUs
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Landroid/media/MediaPlayer;
            0    2     1  mediaTimeUs  J
    MethodParameters:
             Name  Flags
      mediaTimeUs  

  private native void _notifyAt(long);
    descriptor: (J)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
             Name  Flags
      mediaTimeUs  

  public void setAudioStreamType(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // int streamtype
         0: .line 2219
            iload 1 /* streamtype */
            ldc "MediaPlayer"
            ldc "setAudioStreamType()"
            invokestatic android.media.MediaPlayer.deprecateStreamTypeForPlayback:(ILjava/lang/String;Ljava/lang/String;)V
         1: .line 2220
            aload 0 /* this */
         2: .line 2221
            new android.media.AudioAttributes$Builder
            dup
            invokespecial android.media.AudioAttributes$Builder.<init>:()V
            iload 1 /* streamtype */
            invokevirtual android.media.AudioAttributes$Builder.setInternalLegacyStreamType:(I)Landroid/media/AudioAttributes$Builder;
            invokevirtual android.media.AudioAttributes$Builder.build:()Landroid/media/AudioAttributes;
         3: .line 2220
            invokevirtual android.media.MediaPlayer.baseUpdateAudioAttributes:(Landroid/media/AudioAttributes;)V
         4: .line 2222
            aload 0 /* this */
            iload 1 /* streamtype */
            invokevirtual android.media.MediaPlayer._setAudioStreamType:(I)V
         5: .line 2223
            aload 0 /* this */
            iload 1 /* streamtype */
            putfield android.media.MediaPlayer.mStreamType:I
         6: .line 2224
            return
        end local 1 // int streamtype
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Landroid/media/MediaPlayer;
            0    7     1  streamtype  I
    MethodParameters:
            Name  Flags
      streamtype  

  private native void _setAudioStreamType(int);
    descriptor: (I)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
            Name  Flags
      streamtype  

  private native boolean setParameter(int, android.os.Parcel);
    descriptor: (ILandroid/os/Parcel;)Z
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
       Name  Flags
      key    
      value  

  public void setAudioAttributes(android.media.AudioAttributes);
    descriptor: (Landroid/media/AudioAttributes;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.AudioAttributes attributes
         0: .line 2247
            aload 1 /* attributes */
            ifnonnull 2
         1: .line 2249
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot set AudioAttributes to null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* attributes */
            invokevirtual android.media.MediaPlayer.baseUpdateAudioAttributes:(Landroid/media/AudioAttributes;)V
         3: .line 2252
            aload 0 /* this */
            aload 1 /* attributes */
            invokevirtual android.media.AudioAttributes.getUsage:()I
            putfield android.media.MediaPlayer.mUsage:I
         4: .line 2253
            aload 0 /* this */
            aload 1 /* attributes */
            invokevirtual android.media.AudioAttributes.getAllFlags:()I
         5: .line 2254
            bipush 64
            iand
            ifeq 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack: android.media.MediaPlayer
         6: iconst_0
         7: .line 2253
      StackMap locals: android.media.MediaPlayer android.media.AudioAttributes
      StackMap stack: android.media.MediaPlayer int
            putfield android.media.MediaPlayer.mBypassInterruptionPolicy:Z
         8: .line 2255
            invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
            astore 2 /* pattributes */
        start local 2 // android.os.Parcel pattributes
         9: .line 2256
            aload 1 /* attributes */
            aload 2 /* pattributes */
            iconst_1
            invokevirtual android.media.AudioAttributes.writeToParcel:(Landroid/os/Parcel;I)V
        10: .line 2257
            aload 0 /* this */
            sipush 1400
            aload 2 /* pattributes */
            invokevirtual android.media.MediaPlayer.setParameter:(ILandroid/os/Parcel;)Z
            pop
        11: .line 2258
            aload 2 /* pattributes */
            invokevirtual android.os.Parcel.recycle:()V
        12: .line 2259
            return
        end local 2 // android.os.Parcel pattributes
        end local 1 // android.media.AudioAttributes attributes
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Landroid/media/MediaPlayer;
            0   13     1   attributes  Landroid/media/AudioAttributes;
            9   13     2  pattributes  Landroid/os/Parcel;
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
            Name  Flags
      attributes  

  public native void setLooping(boolean);
    descriptor: (Z)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      looping  

  public native boolean isLooping();
    descriptor: ()Z
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public void setVolume(float, float);
    descriptor: (FF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // float leftVolume
        start local 2 // float rightVolume
         0: .line 2293
            aload 0 /* this */
            fload 1 /* leftVolume */
            fload 2 /* rightVolume */
            invokevirtual android.media.MediaPlayer.baseSetVolume:(FF)V
         1: .line 2294
            return
        end local 2 // float rightVolume
        end local 1 // float leftVolume
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Landroid/media/MediaPlayer;
            0    2     1   leftVolume  F
            0    2     2  rightVolume  F
    MethodParameters:
             Name  Flags
      leftVolume   
      rightVolume  

  void playerSetVolume(boolean, float, float);
    descriptor: (ZFF)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.media.MediaPlayer this
        start local 1 // boolean muting
        start local 2 // float leftVolume
        start local 3 // float rightVolume
         0: .line 2298
            aload 0 /* this */
            iload 1 /* muting */
            ifeq 1
            fconst_0
            goto 2
      StackMap locals:
      StackMap stack: android.media.MediaPlayer
         1: fload 2 /* leftVolume */
      StackMap locals: android.media.MediaPlayer int float float
      StackMap stack: android.media.MediaPlayer float
         2: iload 1 /* muting */
            ifeq 3
            fconst_0
            goto 4
      StackMap locals: android.media.MediaPlayer int float float
      StackMap stack: android.media.MediaPlayer float
         3: fload 3 /* rightVolume */
      StackMap locals: android.media.MediaPlayer int float float
      StackMap stack: android.media.MediaPlayer float float
         4: invokevirtual android.media.MediaPlayer._setVolume:(FF)V
         5: .line 2299
            return
        end local 3 // float rightVolume
        end local 2 // float leftVolume
        end local 1 // boolean muting
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Landroid/media/MediaPlayer;
            0    6     1       muting  Z
            0    6     2   leftVolume  F
            0    6     3  rightVolume  F
    MethodParameters:
             Name  Flags
      muting       
      leftVolume   
      rightVolume  

  private native void _setVolume(float, float);
    descriptor: (FF)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
             Name  Flags
      leftVolume   
      rightVolume  

  public void setVolume(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // float volume
         0: .line 2308
            aload 0 /* this */
            fload 1 /* volume */
            fload 1 /* volume */
            invokevirtual android.media.MediaPlayer.setVolume:(FF)V
         1: .line 2309
            return
        end local 1 // float volume
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/media/MediaPlayer;
            0    2     1  volume  F
    MethodParameters:
        Name  Flags
      volume  

  public native void setAudioSessionId(int);
    descriptor: (I)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Exceptions:
      throws java.lang.IllegalArgumentException, java.lang.IllegalStateException
    MethodParameters:
           Name  Flags
      sessionId  

  public native int getAudioSessionId();
    descriptor: ()I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public native void attachAuxEffect(int);
    descriptor: (I)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      effectId  

  public void setAuxEffectSendLevel(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // float level
         0: .line 2367
            aload 0 /* this */
            fload 1 /* level */
            invokevirtual android.media.MediaPlayer.baseSetAuxEffectSendLevel:(F)I
            pop
         1: .line 2368
            return
        end local 1 // float level
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/media/MediaPlayer;
            0    2     1  level  F
    MethodParameters:
       Name  Flags
      level  

  int playerSetAuxEffectSendLevel(boolean, float);
    descriptor: (ZF)I
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // boolean muting
        start local 2 // float level
         0: .line 2372
            aload 0 /* this */
            iload 1 /* muting */
            ifeq 1
            fconst_0
            goto 2
      StackMap locals:
      StackMap stack: android.media.MediaPlayer
         1: fload 2 /* level */
      StackMap locals: android.media.MediaPlayer int float
      StackMap stack: android.media.MediaPlayer float
         2: invokevirtual android.media.MediaPlayer._setAuxEffectSendLevel:(F)V
         3: .line 2373
            iconst_0
            ireturn
        end local 2 // float level
        end local 1 // boolean muting
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Landroid/media/MediaPlayer;
            0    4     1  muting  Z
            0    4     2   level  F
    MethodParameters:
        Name  Flags
      muting  
      level   

  private native void _setAuxEffectSendLevel(float);
    descriptor: (F)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
       Name  Flags
      level  

  private final native int native_invoke(android.os.Parcel, android.os.Parcel);
    descriptor: (Landroid/os/Parcel;Landroid/os/Parcel;)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
         Name  Flags
      request  
      reply    

  private final native boolean native_getMetadata(boolean, boolean, android.os.Parcel);
    descriptor: (ZZLandroid/os/Parcel;)Z
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
              Name  Flags
      update_only   
      apply_filter  
      reply         

  private final native int native_setMetadataFilter(android.os.Parcel);
    descriptor: (Landroid/os/Parcel;)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
         Name  Flags
      request  

  private static final native void native_init();
    descriptor: ()V
    flags: (0x011a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_NATIVE

  private final native void native_setup(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
                  Name  Flags
      mediaplayer_this  

  private final native void native_finalize();
    descriptor: ()V
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE

  public android.media.MediaPlayer$TrackInfo[] getTrackInfo();
    descriptor: ()[Landroid/media/MediaPlayer$TrackInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 2587
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.getInbandTrackInfo:()[Landroid/media/MediaPlayer$TrackInfo;
            astore 1 /* trackInfo */
        start local 1 // android.media.MediaPlayer$TrackInfo[] trackInfo
         1: .line 2589
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            dup
            astore 2
            monitorenter
         2: .line 2590
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            anewarray android.media.MediaPlayer$TrackInfo
            astore 3 /* allTrackInfo */
        start local 3 // android.media.MediaPlayer$TrackInfo[] allTrackInfo
         3: .line 2591
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 12
         5: .line 2592
      StackMap locals: android.media.MediaPlayer android.media.MediaPlayer$TrackInfo[] java.util.Vector android.media.MediaPlayer$TrackInfo[] int
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            iload 4 /* i */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            checkcast android.util.Pair
            astore 5 /* p */
        start local 5 // android.util.Pair p
         6: .line 2593
            aload 5 /* p */
            getfield android.util.Pair.first:Ljava/lang/Object;
            ifnull 9
         7: .line 2595
            aload 3 /* allTrackInfo */
            iload 4 /* i */
            aload 1 /* trackInfo */
            aload 5 /* p */
            getfield android.util.Pair.first:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aaload
            aastore
         8: .line 2596
            goto 11
         9: .line 2597
      StackMap locals: android.util.Pair
      StackMap stack:
            aload 5 /* p */
            getfield android.util.Pair.second:Ljava/lang/Object;
            checkcast android.media.SubtitleTrack
            astore 6 /* track */
        start local 6 // android.media.SubtitleTrack track
        10: .line 2598
            aload 3 /* allTrackInfo */
            iload 4 /* i */
            new android.media.MediaPlayer$TrackInfo
            dup
            aload 6 /* track */
            invokevirtual android.media.SubtitleTrack.getTrackType:()I
            aload 6 /* track */
            invokevirtual android.media.SubtitleTrack.getFormat:()Landroid/media/MediaFormat;
            invokespecial android.media.MediaPlayer$TrackInfo.<init>:(ILandroid/media/MediaFormat;)V
            aastore
        end local 6 // android.media.SubtitleTrack track
        end local 5 // android.util.Pair p
        11: .line 2591
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* i */
            aload 3 /* allTrackInfo */
            arraylength
            if_icmplt 5
        end local 4 // int i
        13: .line 2601
            aload 3 /* allTrackInfo */
            aload 2
            monitorexit
        14: areturn
        end local 3 // android.media.MediaPlayer$TrackInfo[] allTrackInfo
        15: .line 2589
      StackMap locals: android.media.MediaPlayer android.media.MediaPlayer$TrackInfo[] java.util.Vector
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        16: athrow
        end local 1 // android.media.MediaPlayer$TrackInfo[] trackInfo
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0          this  Landroid/media/MediaPlayer;
            1   17     1     trackInfo  [Landroid/media/MediaPlayer$TrackInfo;
            3   15     3  allTrackInfo  [Landroid/media/MediaPlayer$TrackInfo;
            4   13     4             i  I
            6   11     5             p  Landroid/util/Pair<Ljava/lang/Integer;Landroid/media/SubtitleTrack;>;
           10   11     6         track  Landroid/media/SubtitleTrack;
      Exception table:
        from    to  target  type
           2    14      15  any
          15    16      15  any
    Exceptions:
      throws java.lang.IllegalStateException

  private android.media.MediaPlayer$TrackInfo[] getInbandTrackInfo();
    descriptor: ()[Landroid/media/MediaPlayer$TrackInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 2606
            invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
            astore 1 /* request */
        start local 1 // android.os.Parcel request
         1: .line 2607
            invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
            astore 2 /* reply */
        start local 2 // android.os.Parcel reply
         2: .line 2609
            aload 1 /* request */
            ldc "android.media.IMediaPlayer"
            invokevirtual android.os.Parcel.writeInterfaceToken:(Ljava/lang/String;)V
         3: .line 2610
            aload 1 /* request */
            iconst_1
            invokevirtual android.os.Parcel.writeInt:(I)V
         4: .line 2611
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* reply */
            invokevirtual android.media.MediaPlayer.invoke:(Landroid/os/Parcel;Landroid/os/Parcel;)V
         5: .line 2612
            aload 2 /* reply */
            getstatic android.media.MediaPlayer$TrackInfo.CREATOR:Landroid/os/Parcelable$Creator;
            invokevirtual android.os.Parcel.createTypedArray:(Landroid/os/Parcelable$Creator;)[Ljava/lang/Object;
            checkcast android.media.MediaPlayer$TrackInfo[]
            astore 3 /* trackInfo */
        start local 3 // android.media.MediaPlayer$TrackInfo[] trackInfo
         6: .line 2613
            aload 3 /* trackInfo */
            astore 5
         7: .line 2615
            aload 1 /* request */
            invokevirtual android.os.Parcel.recycle:()V
         8: .line 2616
            aload 2 /* reply */
            invokevirtual android.os.Parcel.recycle:()V
         9: .line 2613
            aload 5
            areturn
        end local 3 // android.media.MediaPlayer$TrackInfo[] trackInfo
        10: .line 2614
      StackMap locals: android.media.MediaPlayer android.os.Parcel android.os.Parcel
      StackMap stack: java.lang.Throwable
            astore 4
        11: .line 2615
            aload 1 /* request */
            invokevirtual android.os.Parcel.recycle:()V
        12: .line 2616
            aload 2 /* reply */
            invokevirtual android.os.Parcel.recycle:()V
        13: .line 2617
            aload 4
            athrow
        end local 2 // android.os.Parcel reply
        end local 1 // android.os.Parcel request
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Landroid/media/MediaPlayer;
            1   14     1    request  Landroid/os/Parcel;
            2   14     2      reply  Landroid/os/Parcel;
            6   10     3  trackInfo  [Landroid/media/MediaPlayer$TrackInfo;
      Exception table:
        from    to  target  type
           2     7      10  any
    Exceptions:
      throws java.lang.IllegalStateException

  private static boolean availableMimeTypeForExternalSource(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String mimeType
         0: .line 2654
            ldc "application/x-subrip"
            aload 0 /* mimeType */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 2655
            iconst_1
            ireturn
         2: .line 2657
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.lang.String mimeType
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  mimeType  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      mimeType  

  public void setSubtitleAnchor(android.media.SubtitleController, android.media.SubtitleController$Anchor);
    descriptor: (Landroid/media/SubtitleController;Landroid/media/SubtitleController$Anchor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.SubtitleController controller
        start local 2 // android.media.SubtitleController$Anchor anchor
         0: .line 2667
            aload 0 /* this */
            aload 1 /* controller */
            putfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
         1: .line 2668
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
            aload 2 /* anchor */
            invokevirtual android.media.SubtitleController.setAnchor:(Landroid/media/SubtitleController$Anchor;)V
         2: .line 2669
            return
        end local 2 // android.media.SubtitleController$Anchor anchor
        end local 1 // android.media.SubtitleController controller
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Landroid/media/MediaPlayer;
            0    3     1  controller  Landroid/media/SubtitleController;
            0    3     2      anchor  Landroid/media/SubtitleController$Anchor;
    MethodParameters:
            Name  Flags
      controller  
      anchor      

  private synchronized void setSubtitleAnchor();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 2677
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
            ifnonnull 10
            invokestatic android.app.ActivityThread.currentApplication:()Landroid/app/Application;
            ifnull 10
         1: .line 2678
            new android.os.HandlerThread
            dup
            ldc "SetSubtitleAnchorThread"
            invokespecial android.os.HandlerThread.<init>:(Ljava/lang/String;)V
            astore 1 /* thread */
        start local 1 // android.os.HandlerThread thread
         2: .line 2679
            aload 1 /* thread */
            invokevirtual android.os.HandlerThread.start:()V
         3: .line 2680
            new android.os.Handler
            dup
            aload 1 /* thread */
            invokevirtual android.os.HandlerThread.getLooper:()Landroid/os/Looper;
            invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
            astore 2 /* handler */
        start local 2 // android.os.Handler handler
         4: .line 2681
            aload 2 /* handler */
            new android.media.MediaPlayer$4
            dup
            aload 0 /* this */
            aload 1 /* thread */
            invokespecial android.media.MediaPlayer$4.<init>:(Landroid/media/MediaPlayer;Landroid/os/HandlerThread;)V
            invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
            pop
         5: .line 2700
            aload 1 /* thread */
            invokevirtual android.os.HandlerThread.join:()V
         6: .line 2701
            goto 10
      StackMap locals: android.media.MediaPlayer android.os.HandlerThread android.os.Handler
      StackMap stack: java.lang.InterruptedException
         7: pop
         8: .line 2702
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         9: .line 2703
            ldc "MediaPlayer"
            ldc "failed to join SetSubtitleAnchorThread"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 2 // android.os.Handler handler
        end local 1 // android.os.HandlerThread thread
        10: .line 2706
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Landroid/media/MediaPlayer;
            2   10     1   thread  Landroid/os/HandlerThread;
            4   10     2  handler  Landroid/os/Handler;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.InterruptedException

  public void onSubtitleTrackSelected(android.media.SubtitleTrack);
    descriptor: (Landroid/media/SubtitleTrack;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.SubtitleTrack track
         0: .line 2730
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSelectedSubtitleTrackIndex:I
            iflt 5
         1: .line 2732
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSelectedSubtitleTrackIndex:I
            iconst_0
            invokevirtual android.media.MediaPlayer.selectOrDeselectInbandTrack:(IZ)V
         2: .line 2733
            goto 4
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
         3: pop
         4: .line 2735
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield android.media.MediaPlayer.mSelectedSubtitleTrackIndex:I
         5: .line 2737
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         6: .line 2738
            aload 0 /* this */
            iconst_1
            putfield android.media.MediaPlayer.mSubtitleDataListenerDisabled:Z
         7: .line 2737
            aload 2
            monitorexit
         8: goto 11
      StackMap locals: android.media.MediaPlayer android.media.SubtitleTrack android.media.MediaPlayer
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 2740
      StackMap locals:
      StackMap stack:
            aload 1 /* track */
            ifnonnull 13
        12: .line 2741
            return
        13: .line 2744
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            dup
            astore 2
            monitorenter
        14: .line 2745
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            invokevirtual java.util.Vector.iterator:()Ljava/util/Iterator;
            astore 4
            goto 19
      StackMap locals: android.media.MediaPlayer android.media.SubtitleTrack java.util.Vector top java.util.Iterator
      StackMap stack:
        15: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.util.Pair
            astore 3 /* p */
        start local 3 // android.util.Pair p
        16: .line 2746
            aload 3 /* p */
            getfield android.util.Pair.first:Ljava/lang/Object;
            ifnull 19
            aload 3 /* p */
            getfield android.util.Pair.second:Ljava/lang/Object;
            aload 1 /* track */
            if_acmpne 19
        17: .line 2748
            aload 0 /* this */
            aload 3 /* p */
            getfield android.util.Pair.first:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            putfield android.media.MediaPlayer.mSelectedSubtitleTrackIndex:I
        18: .line 2749
            goto 20
        end local 3 // android.util.Pair p
        19: .line 2745
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        20: .line 2744
      StackMap locals: android.media.MediaPlayer android.media.SubtitleTrack java.util.Vector
      StackMap stack:
            aload 2
            monitorexit
        21: goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: aload 2
            monitorexit
        23: athrow
        24: .line 2754
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSelectedSubtitleTrackIndex:I
            iflt 34
        25: .line 2756
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSelectedSubtitleTrackIndex:I
            iconst_1
            invokevirtual android.media.MediaPlayer.selectOrDeselectInbandTrack:(IZ)V
        26: .line 2757
            goto 28
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
        27: pop
        28: .line 2759
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
        29: .line 2760
            aload 0 /* this */
            iconst_0
            putfield android.media.MediaPlayer.mSubtitleDataListenerDisabled:Z
        30: .line 2759
            aload 2
            monitorexit
        31: goto 34
      StackMap locals: android.media.MediaPlayer android.media.SubtitleTrack android.media.MediaPlayer
      StackMap stack: java.lang.Throwable
        32: aload 2
            monitorexit
        33: athrow
        34: .line 2764
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.SubtitleTrack track
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   35     0   this  Landroid/media/MediaPlayer;
            0   35     1  track  Landroid/media/SubtitleTrack;
           16   19     3      p  Landroid/util/Pair<Ljava/lang/Integer;Landroid/media/SubtitleTrack;>;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.IllegalStateException
           6     8       9  any
           9    10       9  any
          14    21      22  any
          22    23      22  any
          25    26      27  Class java.lang.IllegalStateException
          29    31      32  any
          32    33      32  any
    MethodParameters:
       Name  Flags
      track  

  public void addSubtitleSource(java.io.InputStream, android.media.MediaFormat);
    descriptor: (Ljava/io/InputStream;Landroid/media/MediaFormat;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.io.InputStream is
        start local 2 // android.media.MediaFormat format
         0: .line 2770
            aload 1 /* is */
            astore 3 /* fIs */
        start local 3 // java.io.InputStream fIs
         1: .line 2771
            aload 2 /* format */
            astore 4 /* fFormat */
        start local 4 // android.media.MediaFormat fFormat
         2: .line 2773
            aload 1 /* is */
            ifnull 9
         3: .line 2776
            aload 0 /* this */
            getfield android.media.MediaPlayer.mOpenSubtitleSources:Ljava/util/Vector;
            dup
            astore 5
            monitorenter
         4: .line 2777
            aload 0 /* this */
            getfield android.media.MediaPlayer.mOpenSubtitleSources:Ljava/util/Vector;
            aload 1 /* is */
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
         5: .line 2776
            aload 5
            monitorexit
         6: goto 10
      StackMap locals: android.media.MediaPlayer java.io.InputStream android.media.MediaFormat java.io.InputStream android.media.MediaFormat java.util.Vector
      StackMap stack: java.lang.Throwable
         7: aload 5
            monitorexit
         8: athrow
         9: .line 2780
      StackMap locals:
      StackMap stack:
            ldc "MediaPlayer"
            ldc "addSubtitleSource called with null InputStream"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        10: .line 2783
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.getMediaTimeProvider:()Landroid/media/MediaTimeProvider;
            pop
        11: .line 2786
            new android.os.HandlerThread
            dup
            ldc "SubtitleReadThread"
        12: .line 2787
            bipush 9
        13: .line 2786
            invokespecial android.os.HandlerThread.<init>:(Ljava/lang/String;I)V
            astore 5 /* thread */
        start local 5 // android.os.HandlerThread thread
        14: .line 2788
            aload 5 /* thread */
            invokevirtual android.os.HandlerThread.start:()V
        15: .line 2789
            new android.os.Handler
            dup
            aload 5 /* thread */
            invokevirtual android.os.HandlerThread.getLooper:()Landroid/os/Looper;
            invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
            astore 6 /* handler */
        start local 6 // android.os.Handler handler
        16: .line 2790
            aload 6 /* handler */
            new android.media.MediaPlayer$5
            dup
            aload 0 /* this */
            aload 3 /* fIs */
            aload 4 /* fFormat */
            aload 5 /* thread */
            invokespecial android.media.MediaPlayer$5.<init>:(Landroid/media/MediaPlayer;Ljava/io/InputStream;Landroid/media/MediaFormat;Landroid/os/HandlerThread;)V
            invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
            pop
        17: .line 2829
            return
        end local 6 // android.os.Handler handler
        end local 5 // android.os.HandlerThread thread
        end local 4 // android.media.MediaFormat fFormat
        end local 3 // java.io.InputStream fIs
        end local 2 // android.media.MediaFormat format
        end local 1 // java.io.InputStream is
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Landroid/media/MediaPlayer;
            0   18     1       is  Ljava/io/InputStream;
            0   18     2   format  Landroid/media/MediaFormat;
            1   18     3      fIs  Ljava/io/InputStream;
            2   18     4  fFormat  Landroid/media/MediaFormat;
           14   18     5   thread  Landroid/os/HandlerThread;
           16   18     6  handler  Landroid/os/Handler;
      Exception table:
        from    to  target  type
           4     6       7  any
           7     8       7  any
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
        Name  Flags
      is      
      format  

  private void scanInternalSubtitleTracks();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 2832
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.setSubtitleAnchor:()V
         1: .line 2834
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.populateInbandTracks:()V
         2: .line 2836
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
            ifnull 4
         3: .line 2837
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
            invokevirtual android.media.SubtitleController.selectDefaultTrack:()V
         4: .line 2839
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/media/MediaPlayer;

  private void populateInbandTracks();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 2842
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.getInbandTrackInfo:()[Landroid/media/MediaPlayer$TrackInfo;
            astore 1 /* tracks */
        start local 1 // android.media.MediaPlayer$TrackInfo[] tracks
         1: .line 2843
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            dup
            astore 2
            monitorenter
         2: .line 2844
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 18
         4: .line 2845
      StackMap locals: android.media.MediaPlayer$TrackInfo[] java.util.Vector int
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mInbandTrackIndices:Ljava/util/BitSet;
            iload 3 /* i */
            invokevirtual java.util.BitSet.get:(I)Z
            ifeq 6
         5: .line 2846
            goto 17
         6: .line 2848
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mInbandTrackIndices:Ljava/util/BitSet;
            iload 3 /* i */
            invokevirtual java.util.BitSet.set:(I)V
         7: .line 2851
            aload 1 /* tracks */
            iload 3 /* i */
            aaload
            ifnonnull 9
         8: .line 2852
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "unexpected NULL track at index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 2855
      StackMap locals:
      StackMap stack:
            aload 1 /* tracks */
            iload 3 /* i */
            aaload
            ifnull 16
        10: .line 2856
            aload 1 /* tracks */
            iload 3 /* i */
            aaload
            invokevirtual android.media.MediaPlayer$TrackInfo.getTrackType:()I
            iconst_4
            if_icmpne 16
        11: .line 2857
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
        12: .line 2858
            aload 1 /* tracks */
            iload 3 /* i */
            aaload
            invokevirtual android.media.MediaPlayer$TrackInfo.getFormat:()Landroid/media/MediaFormat;
        13: .line 2857
            invokevirtual android.media.SubtitleController.addTrack:(Landroid/media/MediaFormat;)Landroid/media/SubtitleTrack;
            astore 4 /* track */
        start local 4 // android.media.SubtitleTrack track
        14: .line 2859
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            iload 3 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* track */
            invokestatic android.util.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // android.media.SubtitleTrack track
        15: .line 2860
            goto 17
        16: .line 2861
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            iload 3 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aconst_null
            invokestatic android.util.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
        17: .line 2844
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 3 /* i */
            aload 1 /* tracks */
            arraylength
            if_icmplt 4
        end local 3 // int i
        19: .line 2843
            aload 2
            monitorexit
        20: goto 23
      StackMap locals: android.media.MediaPlayer android.media.MediaPlayer$TrackInfo[] java.util.Vector
      StackMap stack: java.lang.Throwable
        21: aload 2
            monitorexit
        22: athrow
        23: .line 2865
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.MediaPlayer$TrackInfo[] tracks
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   24     0    this  Landroid/media/MediaPlayer;
            1   24     1  tracks  [Landroid/media/MediaPlayer$TrackInfo;
            3   19     3       i  I
           14   15     4   track  Landroid/media/SubtitleTrack;
      Exception table:
        from    to  target  type
           2    20      21  any
          21    22      21  any

  public void addTimedTextSource(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.lang.String path
        start local 2 // java.lang.String mimeType
         0: .line 2885
            aload 2 /* mimeType */
            invokestatic android.media.MediaPlayer.availableMimeTypeForExternalSource:(Ljava/lang/String;)Z
            ifne 3
         1: .line 2886
            new java.lang.StringBuilder
            dup
            ldc "Illegal mimeType for timed text source: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* mimeType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* msg */
        start local 3 // java.lang.String msg
         2: .line 2887
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* msg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String msg
         3: .line 2890
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* file */
        start local 3 // java.io.File file
         4: .line 2891
            aload 3 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 10
         5: .line 2892
            new java.io.FileInputStream
            dup
            aload 3 /* file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 4 /* is */
        start local 4 // java.io.FileInputStream is
         6: .line 2893
            aload 4 /* is */
            invokevirtual java.io.FileInputStream.getFD:()Ljava/io/FileDescriptor;
            astore 5 /* fd */
        start local 5 // java.io.FileDescriptor fd
         7: .line 2894
            aload 0 /* this */
            aload 5 /* fd */
            aload 2 /* mimeType */
            invokevirtual android.media.MediaPlayer.addTimedTextSource:(Ljava/io/FileDescriptor;Ljava/lang/String;)V
         8: .line 2895
            aload 4 /* is */
            invokevirtual java.io.FileInputStream.close:()V
        end local 5 // java.io.FileDescriptor fd
        end local 4 // java.io.FileInputStream is
         9: .line 2896
            goto 11
        10: .line 2898
      StackMap locals: java.io.File
      StackMap stack:
            new java.io.IOException
            dup
            aload 1 /* path */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 2900
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.io.File file
        end local 2 // java.lang.String mimeType
        end local 1 // java.lang.String path
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Landroid/media/MediaPlayer;
            0   12     1      path  Ljava/lang/String;
            0   12     2  mimeType  Ljava/lang/String;
            2    3     3       msg  Ljava/lang/String;
            4   12     3      file  Ljava/io/File;
            6    9     4        is  Ljava/io/FileInputStream;
            7    9     5        fd  Ljava/io/FileDescriptor;
    Exceptions:
      throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    MethodParameters:
          Name  Flags
      path      
      mimeType  

  public void addTimedTextSource(android.content.Context, android.net.Uri, java.lang.String);
    descriptor: (Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.content.Context context
        start local 2 // android.net.Uri uri
        start local 3 // java.lang.String mimeType
         0: .line 2919
            aload 2 /* uri */
            invokevirtual android.net.Uri.getScheme:()Ljava/lang/String;
            astore 4 /* scheme */
        start local 4 // java.lang.String scheme
         1: .line 2920
            aload 4 /* scheme */
            ifnull 2
            aload 4 /* scheme */
            ldc "file"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 2921
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* uri */
            invokevirtual android.net.Uri.getPath:()Ljava/lang/String;
            aload 3 /* mimeType */
            invokevirtual android.media.MediaPlayer.addTimedTextSource:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 2922
            return
         4: .line 2925
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* fd */
        start local 5 // android.content.res.AssetFileDescriptor fd
         5: .line 2927
            aload 1 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
            astore 6 /* resolver */
        start local 6 // android.content.ContentResolver resolver
         6: .line 2928
            aload 6 /* resolver */
            aload 2 /* uri */
            ldc "r"
            invokevirtual android.content.ContentResolver.openAssetFileDescriptor:(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
            astore 5 /* fd */
         7: .line 2929
            aload 5 /* fd */
            ifnonnull 11
         8: .line 2937
            aload 5 /* fd */
            ifnull 10
         9: .line 2938
            aload 5 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.close:()V
        10: .line 2930
      StackMap locals: android.content.res.AssetFileDescriptor android.content.ContentResolver
      StackMap stack:
            return
        11: .line 2932
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
            aload 3 /* mimeType */
            invokevirtual android.media.MediaPlayer.addTimedTextSource:(Ljava/io/FileDescriptor;Ljava/lang/String;)V
        12: .line 2937
            aload 5 /* fd */
            ifnull 14
        13: .line 2938
            aload 5 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.close:()V
        14: .line 2933
      StackMap locals:
      StackMap stack:
            return
        end local 6 // android.content.ContentResolver resolver
        15: .line 2934
      StackMap locals: android.media.MediaPlayer android.content.Context android.net.Uri java.lang.String java.lang.String android.content.res.AssetFileDescriptor
      StackMap stack: java.lang.SecurityException
            pop
        16: .line 2937
            aload 5 /* fd */
            ifnull 25
        17: .line 2938
            aload 5 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.close:()V
            goto 25
        18: .line 2935
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        19: .line 2937
            aload 5 /* fd */
            ifnull 25
        20: .line 2938
            aload 5 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.close:()V
            goto 25
        21: .line 2936
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        22: .line 2937
            aload 5 /* fd */
            ifnull 24
        23: .line 2938
            aload 5 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.close:()V
        24: .line 2940
      StackMap locals: android.media.MediaPlayer android.content.Context android.net.Uri java.lang.String java.lang.String android.content.res.AssetFileDescriptor top java.lang.Throwable
      StackMap stack:
            aload 7
            athrow
        25: .line 2941
      StackMap locals: android.media.MediaPlayer android.content.Context android.net.Uri java.lang.String java.lang.String android.content.res.AssetFileDescriptor
      StackMap stack:
            return
        end local 5 // android.content.res.AssetFileDescriptor fd
        end local 4 // java.lang.String scheme
        end local 3 // java.lang.String mimeType
        end local 2 // android.net.Uri uri
        end local 1 // android.content.Context context
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   26     0      this  Landroid/media/MediaPlayer;
            0   26     1   context  Landroid/content/Context;
            0   26     2       uri  Landroid/net/Uri;
            0   26     3  mimeType  Ljava/lang/String;
            1   26     4    scheme  Ljava/lang/String;
            5   26     5        fd  Landroid/content/res/AssetFileDescriptor;
            6   15     6  resolver  Landroid/content/ContentResolver;
      Exception table:
        from    to  target  type
           5     8      15  Class java.lang.SecurityException
          11    12      15  Class java.lang.SecurityException
           5     8      18  Class java.io.IOException
          11    12      18  Class java.io.IOException
           5     8      21  any
          11    12      21  any
          15    16      21  any
          18    19      21  any
    Exceptions:
      throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    MethodParameters:
          Name  Flags
      context   
      uri       
      mimeType  

  public void addTimedTextSource(java.io.FileDescriptor, java.lang.String);
    descriptor: (Ljava/io/FileDescriptor;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // java.lang.String mimeType
         0: .line 2962
            aload 0 /* this */
            aload 1 /* fd */
            lconst_0
            ldc 576460752303423487
            aload 2 /* mimeType */
            invokevirtual android.media.MediaPlayer.addTimedTextSource:(Ljava/io/FileDescriptor;JJLjava/lang/String;)V
         1: .line 2963
            return
        end local 2 // java.lang.String mimeType
        end local 1 // java.io.FileDescriptor fd
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaPlayer;
            0    2     1        fd  Ljava/io/FileDescriptor;
            0    2     2  mimeType  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalArgumentException, java.lang.IllegalStateException
    MethodParameters:
          Name  Flags
      fd        
      mimeType  

  public void addTimedTextSource(java.io.FileDescriptor, long, long, java.lang.String);
    descriptor: (Ljava/io/FileDescriptor;JJLjava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // android.media.MediaPlayer this
         0: .line 2991
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tOs cannot be resolved\n\tErrnoException cannot be resolved to a type\n\tOs cannot be resolved\n\tOsConstants cannot be resolved to a variable\n\tIoBridge cannot be resolved\n\tOs cannot be resolved\n\tErrnoException cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaPlayer;
    Exceptions:
      throws java.lang.IllegalArgumentException, java.lang.IllegalStateException
    MethodParameters:
        Name  Flags
      fd      
      offset  
      length  
      mime    

  public int getSelectedTrack(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // int trackType
         0: .line 3089
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
            ifnull 18
         1: .line 3090
            iload 1 /* trackType */
            iconst_4
            if_icmpeq 3
         2: .line 3091
            iload 1 /* trackType */
            iconst_3
            if_icmpne 18
         3: .line 3092
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
            invokevirtual android.media.SubtitleController.getSelectedTrack:()Landroid/media/SubtitleTrack;
            astore 2 /* subtitleTrack */
        start local 2 // android.media.SubtitleTrack subtitleTrack
         4: .line 3093
            aload 2 /* subtitleTrack */
            ifnull 18
         5: .line 3094
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            dup
            astore 3
            monitorenter
         6: .line 3095
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         7: goto 13
         8: .line 3096
      StackMap locals: android.media.SubtitleTrack java.util.Vector int
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            iload 4 /* i */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            checkcast android.util.Pair
            astore 5 /* p */
        start local 5 // android.util.Pair p
         9: .line 3097
            aload 5 /* p */
            getfield android.util.Pair.second:Ljava/lang/Object;
            aload 2 /* subtitleTrack */
            if_acmpne 12
            aload 2 /* subtitleTrack */
            invokevirtual android.media.SubtitleTrack.getTrackType:()I
            iload 1 /* trackType */
            if_icmpne 12
        10: .line 3098
            iload 4 /* i */
            aload 3
            monitorexit
        11: ireturn
        end local 5 // android.util.Pair p
        12: .line 3095
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 4 /* i */
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            if_icmplt 8
        end local 4 // int i
        14: .line 3094
            aload 3
            monitorexit
        15: goto 18
      StackMap locals: android.media.MediaPlayer int android.media.SubtitleTrack java.util.Vector
      StackMap stack: java.lang.Throwable
        16: aload 3
            monitorexit
        17: athrow
        end local 2 // android.media.SubtitleTrack subtitleTrack
        18: .line 3105
      StackMap locals:
      StackMap stack:
            invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
            astore 2 /* request */
        start local 2 // android.os.Parcel request
        19: .line 3106
            invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
            astore 3 /* reply */
        start local 3 // android.os.Parcel reply
        20: .line 3108
            aload 2 /* request */
            ldc "android.media.IMediaPlayer"
            invokevirtual android.os.Parcel.writeInterfaceToken:(Ljava/lang/String;)V
        21: .line 3109
            aload 2 /* request */
            bipush 7
            invokevirtual android.os.Parcel.writeInt:(I)V
        22: .line 3110
            aload 2 /* request */
            iload 1 /* trackType */
            invokevirtual android.os.Parcel.writeInt:(I)V
        23: .line 3111
            aload 0 /* this */
            aload 2 /* request */
            aload 3 /* reply */
            invokevirtual android.media.MediaPlayer.invoke:(Landroid/os/Parcel;Landroid/os/Parcel;)V
        24: .line 3112
            aload 3 /* reply */
            invokevirtual android.os.Parcel.readInt:()I
            istore 4 /* inbandTrackIndex */
        start local 4 // int inbandTrackIndex
        25: .line 3113
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            dup
            astore 5
            monitorenter
        26: .line 3114
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        27: goto 35
        28: .line 3115
      StackMap locals: android.media.MediaPlayer int android.os.Parcel android.os.Parcel int java.util.Vector int
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            iload 6 /* i */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            checkcast android.util.Pair
            astore 7 /* p */
        start local 7 // android.util.Pair p
        29: .line 3116
            aload 7 /* p */
            getfield android.util.Pair.first:Ljava/lang/Object;
            ifnull 34
            aload 7 /* p */
            getfield android.util.Pair.first:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iload 4 /* inbandTrackIndex */
            if_icmpne 34
        30: .line 3117
            iload 6 /* i */
            istore 9
            aload 5
            monitorexit
        31: .line 3123
            aload 2 /* request */
            invokevirtual android.os.Parcel.recycle:()V
        32: .line 3124
            aload 3 /* reply */
            invokevirtual android.os.Parcel.recycle:()V
        33: .line 3117
            iload 9
            ireturn
        end local 7 // android.util.Pair p
        34: .line 3114
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 6 /* i */
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            if_icmplt 28
        end local 6 // int i
        36: .line 3113
            aload 5
            monitorexit
        37: goto 40
      StackMap locals: android.media.MediaPlayer int android.os.Parcel android.os.Parcel int java.util.Vector
      StackMap stack: java.lang.Throwable
        38: aload 5
            monitorexit
        39: athrow
        40: .line 3123
      StackMap locals:
      StackMap stack:
            aload 2 /* request */
            invokevirtual android.os.Parcel.recycle:()V
        41: .line 3124
            aload 3 /* reply */
            invokevirtual android.os.Parcel.recycle:()V
        42: .line 3121
            iconst_m1
            ireturn
        end local 4 // int inbandTrackIndex
        43: .line 3122
      StackMap locals: android.media.MediaPlayer int android.os.Parcel android.os.Parcel
      StackMap stack: java.lang.Throwable
            astore 8
        44: .line 3123
            aload 2 /* request */
            invokevirtual android.os.Parcel.recycle:()V
        45: .line 3124
            aload 3 /* reply */
            invokevirtual android.os.Parcel.recycle:()V
        46: .line 3125
            aload 8
            athrow
        end local 3 // android.os.Parcel reply
        end local 2 // android.os.Parcel request
        end local 1 // int trackType
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   47     0              this  Landroid/media/MediaPlayer;
            0   47     1         trackType  I
            4   18     2     subtitleTrack  Landroid/media/SubtitleTrack;
            7   14     4                 i  I
            9   12     5                 p  Landroid/util/Pair<Ljava/lang/Integer;Landroid/media/SubtitleTrack;>;
           19   47     2           request  Landroid/os/Parcel;
           20   47     3             reply  Landroid/os/Parcel;
           25   43     4  inbandTrackIndex  I
           27   36     6                 i  I
           29   34     7                 p  Landroid/util/Pair<Ljava/lang/Integer;Landroid/media/SubtitleTrack;>;
      Exception table:
        from    to  target  type
           6    11      16  any
          12    15      16  any
          16    17      16  any
          26    31      38  any
          34    37      38  any
          38    39      38  any
          20    31      43  any
          34    40      43  any
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
           Name  Flags
      trackType  

  public void selectTrack(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // int index
         0: .line 3157
            aload 0 /* this */
            iload 1 /* index */
            iconst_1
            invokevirtual android.media.MediaPlayer.selectOrDeselectTrack:(IZ)V
         1: .line 3158
            return
        end local 1 // int index
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/media/MediaPlayer;
            0    2     1  index  I
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      index  

  public void deselectTrack(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // int index
         0: .line 3175
            aload 0 /* this */
            iload 1 /* index */
            iconst_0
            invokevirtual android.media.MediaPlayer.selectOrDeselectTrack:(IZ)V
         1: .line 3176
            return
        end local 1 // int index
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/media/MediaPlayer;
            0    2     1  index  I
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
       Name  Flags
      index  

  private void selectOrDeselectTrack(int, boolean);
    descriptor: (IZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // int index
        start local 2 // boolean select
         0: .line 3181
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.populateInbandTracks:()V
         1: .line 3183
            aconst_null
            astore 3 /* p */
        start local 3 // android.util.Pair p
         2: .line 3185
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            iload 1 /* index */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            checkcast android.util.Pair
            astore 3 /* p */
         3: .line 3186
            goto 6
      StackMap locals: android.media.MediaPlayer int int android.util.Pair
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
         4: pop
         5: .line 3188
            return
         6: .line 3191
      StackMap locals:
      StackMap stack:
            aload 3 /* p */
            getfield android.util.Pair.second:Ljava/lang/Object;
            checkcast android.media.SubtitleTrack
            astore 4 /* track */
        start local 4 // android.media.SubtitleTrack track
         7: .line 3192
            aload 4 /* track */
            ifnonnull 10
         8: .line 3194
            aload 0 /* this */
            aload 3 /* p */
            getfield android.util.Pair.first:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iload 2 /* select */
            invokevirtual android.media.MediaPlayer.selectOrDeselectInbandTrack:(IZ)V
         9: .line 3195
            return
        10: .line 3198
      StackMap locals: android.media.SubtitleTrack
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
            ifnonnull 12
        11: .line 3199
            return
        12: .line 3202
      StackMap locals:
      StackMap stack:
            iload 2 /* select */
            ifne 18
        13: .line 3204
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
            invokevirtual android.media.SubtitleController.getSelectedTrack:()Landroid/media/SubtitleTrack;
            aload 4 /* track */
            if_acmpne 16
        14: .line 3205
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
            aconst_null
            invokevirtual android.media.SubtitleController.selectTrack:(Landroid/media/SubtitleTrack;)Z
            pop
        15: .line 3206
            goto 17
        16: .line 3207
      StackMap locals:
      StackMap stack:
            ldc "MediaPlayer"
            ldc "trying to deselect track that was not selected"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        17: .line 3209
      StackMap locals:
      StackMap stack:
            return
        18: .line 3213
      StackMap locals:
      StackMap stack:
            aload 4 /* track */
            invokevirtual android.media.SubtitleTrack.getTrackType:()I
            iconst_3
            if_icmpne 29
        19: .line 3214
            aload 0 /* this */
            iconst_3
            invokevirtual android.media.MediaPlayer.getSelectedTrack:(I)I
            istore 5 /* ttIndex */
        start local 5 // int ttIndex
        20: .line 3215
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            dup
            astore 6
            monitorenter
        21: .line 3216
            iload 5 /* ttIndex */
            iflt 25
            iload 5 /* ttIndex */
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            if_icmpge 25
        22: .line 3217
            aload 0 /* this */
            getfield android.media.MediaPlayer.mIndexTrackPairs:Ljava/util/Vector;
            iload 5 /* ttIndex */
            invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
            checkcast android.util.Pair
            astore 7 /* p2 */
        start local 7 // android.util.Pair p2
        23: .line 3218
            aload 7 /* p2 */
            getfield android.util.Pair.first:Ljava/lang/Object;
            ifnull 25
            aload 7 /* p2 */
            getfield android.util.Pair.second:Ljava/lang/Object;
            ifnonnull 25
        24: .line 3220
            aload 0 /* this */
            aload 7 /* p2 */
            getfield android.util.Pair.first:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_0
            invokevirtual android.media.MediaPlayer.selectOrDeselectInbandTrack:(IZ)V
        end local 7 // android.util.Pair p2
        25: .line 3215
      StackMap locals: int java.util.Vector
      StackMap stack:
            aload 6
            monitorexit
        26: goto 29
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: aload 6
            monitorexit
        28: athrow
        end local 5 // int ttIndex
        29: .line 3225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mSubtitleController:Landroid/media/SubtitleController;
            aload 4 /* track */
            invokevirtual android.media.SubtitleController.selectTrack:(Landroid/media/SubtitleTrack;)Z
            pop
        30: .line 3226
            return
        end local 4 // android.media.SubtitleTrack track
        end local 3 // android.util.Pair p
        end local 2 // boolean select
        end local 1 // int index
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   31     0     this  Landroid/media/MediaPlayer;
            0   31     1    index  I
            0   31     2   select  Z
            2   31     3        p  Landroid/util/Pair<Ljava/lang/Integer;Landroid/media/SubtitleTrack;>;
            7   31     4    track  Landroid/media/SubtitleTrack;
           20   29     5  ttIndex  I
           23   25     7       p2  Landroid/util/Pair<Ljava/lang/Integer;Landroid/media/SubtitleTrack;>;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.ArrayIndexOutOfBoundsException
          21    26      27  any
          27    28      27  any
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
        Name  Flags
      index   
      select  

  private void selectOrDeselectInbandTrack(int, boolean);
    descriptor: (IZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // int index
        start local 2 // boolean select
         0: .line 3230
            invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
            astore 3 /* request */
        start local 3 // android.os.Parcel request
         1: .line 3231
            invokestatic android.os.Parcel.obtain:()Landroid/os/Parcel;
            astore 4 /* reply */
        start local 4 // android.os.Parcel reply
         2: .line 3233
            aload 3 /* request */
            ldc "android.media.IMediaPlayer"
            invokevirtual android.os.Parcel.writeInterfaceToken:(Ljava/lang/String;)V
         3: .line 3234
            aload 3 /* request */
            iload 2 /* select */
            ifeq 4
            iconst_4
            goto 5
      StackMap locals: android.media.MediaPlayer int int android.os.Parcel android.os.Parcel
      StackMap stack: android.os.Parcel
         4: iconst_5
      StackMap locals: android.media.MediaPlayer int int android.os.Parcel android.os.Parcel
      StackMap stack: android.os.Parcel int
         5: invokevirtual android.os.Parcel.writeInt:(I)V
         6: .line 3235
            aload 3 /* request */
            iload 1 /* index */
            invokevirtual android.os.Parcel.writeInt:(I)V
         7: .line 3236
            aload 0 /* this */
            aload 3 /* request */
            aload 4 /* reply */
            invokevirtual android.media.MediaPlayer.invoke:(Landroid/os/Parcel;Landroid/os/Parcel;)V
         8: .line 3237
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 5
        10: .line 3238
            aload 3 /* request */
            invokevirtual android.os.Parcel.recycle:()V
        11: .line 3239
            aload 4 /* reply */
            invokevirtual android.os.Parcel.recycle:()V
        12: .line 3240
            aload 5
            athrow
        13: .line 3238
      StackMap locals:
      StackMap stack:
            aload 3 /* request */
            invokevirtual android.os.Parcel.recycle:()V
        14: .line 3239
            aload 4 /* reply */
            invokevirtual android.os.Parcel.recycle:()V
        15: .line 3241
            return
        end local 4 // android.os.Parcel reply
        end local 3 // android.os.Parcel request
        end local 2 // boolean select
        end local 1 // int index
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Landroid/media/MediaPlayer;
            0   16     1    index  I
            0   16     2   select  Z
            1   16     3  request  Landroid/os/Parcel;
            2   16     4    reply  Landroid/os/Parcel;
      Exception table:
        from    to  target  type
           2     9       9  any
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
        Name  Flags
      index   
      select  

  public static native int native_pullBatteryData(android.os.Parcel);
    descriptor: (Landroid/os/Parcel;)I
    flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
    MethodParameters:
       Name  Flags
      reply  

  public void setRetransmitEndpoint(java.net.InetSocketAddress);
    descriptor: (Ljava/net/InetSocketAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.net.InetSocketAddress endpoint
         0: .line 3282
            aconst_null
            astore 2 /* addrString */
        start local 2 // java.lang.String addrString
         1: .line 3283
            iconst_0
            istore 3 /* port */
        start local 3 // int port
         2: .line 3285
            aload 1 /* endpoint */
            ifnull 5
         3: .line 3286
            aload 1 /* endpoint */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            astore 2 /* addrString */
         4: .line 3287
            aload 1 /* endpoint */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            istore 3 /* port */
         5: .line 3290
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* addrString */
            iload 3 /* port */
            invokevirtual android.media.MediaPlayer.native_setRetransmitEndpoint:(Ljava/lang/String;I)I
            istore 4 /* ret */
        start local 4 // int ret
         6: .line 3291
            iload 4 /* ret */
            ifeq 8
         7: .line 3292
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Illegal re-transmit endpoint; native ret "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* ret */
            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
         8: .line 3294
      StackMap locals: int
      StackMap stack:
            return
        end local 4 // int ret
        end local 3 // int port
        end local 2 // java.lang.String addrString
        end local 1 // java.net.InetSocketAddress endpoint
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Landroid/media/MediaPlayer;
            0    9     1    endpoint  Ljava/net/InetSocketAddress;
            1    9     2  addrString  Ljava/lang/String;
            2    9     3        port  I
            6    9     4         ret  I
    Exceptions:
      throws java.lang.IllegalStateException, java.lang.IllegalArgumentException
    MethodParameters:
          Name  Flags
      endpoint  

  private final native int native_setRetransmitEndpoint(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
            Name  Flags
      addrString  
      port        

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 3300
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.baseRelease:()V
         1: .line 3301
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.native_finalize:()V
         2: .line 3302
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/media/MediaPlayer;

  public android.media.MediaTimeProvider getMediaTimeProvider();
    descriptor: ()Landroid/media/MediaTimeProvider;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 3331
            aload 0 /* this */
            getfield android.media.MediaPlayer.mTimeProvider:Landroid/media/MediaPlayer$TimeProvider;
            ifnonnull 2
         1: .line 3332
            aload 0 /* this */
            new android.media.MediaPlayer$TimeProvider
            dup
            aload 0 /* this */
            invokespecial android.media.MediaPlayer$TimeProvider.<init>:(Landroid/media/MediaPlayer;)V
            putfield android.media.MediaPlayer.mTimeProvider:Landroid/media/MediaPlayer$TimeProvider;
         2: .line 3334
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mTimeProvider:Landroid/media/MediaPlayer$TimeProvider;
            areturn
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/media/MediaPlayer;

  private static void postEventFromNative(java.lang.Object, int, int, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;IIILjava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // java.lang.Object mediaplayer_ref
        start local 1 // int what
        start local 2 // int arg1
        start local 3 // int arg2
        start local 4 // java.lang.Object obj
         0: .line 3647
            aload 0 /* mediaplayer_ref */
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast android.media.MediaPlayer
            astore 5 /* mp */
        start local 5 // android.media.MediaPlayer mp
         1: .line 3648
            aload 5 /* mp */
            ifnonnull 3
         2: .line 3649
            return
         3: .line 3652
      StackMap locals: android.media.MediaPlayer
      StackMap stack:
            iload 1 /* what */
            lookupswitch { // 3
                    1: 21
                  200: 4
                  210: 9
              default: 27
          }
         4: .line 3654
      StackMap locals:
      StackMap stack:
            iload 2 /* arg1 */
            iconst_2
            if_icmpne 27
         5: .line 3655
            new java.lang.Thread
            dup
            new android.media.MediaPlayer$6
            dup
            aload 5 /* mp */
            invokespecial android.media.MediaPlayer$6.<init>:(Landroid/media/MediaPlayer;)V
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
         6: .line 3661
            invokevirtual java.lang.Thread.start:()V
         7: .line 3662
            invokestatic java.lang.Thread.yield:()V
         8: .line 3664
            goto 27
         9: .line 3671
      StackMap locals:
      StackMap stack:
            ldc "MediaPlayer"
            ldc "postEventFromNative MEDIA_DRM_INFO"
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        10: .line 3672
            aload 4 /* obj */
            instanceof android.os.Parcel
            ifeq 19
        11: .line 3673
            aload 4 /* obj */
            checkcast android.os.Parcel
            astore 6 /* parcel */
        start local 6 // android.os.Parcel parcel
        12: .line 3674
            new android.media.MediaPlayer$DrmInfo
            dup
            aload 6 /* parcel */
            invokespecial android.media.MediaPlayer$DrmInfo.<init>:(Landroid/os/Parcel;)V
            astore 7 /* drmInfo */
        start local 7 // android.media.MediaPlayer$DrmInfo drmInfo
        13: .line 3675
            aload 5 /* mp */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 8
            monitorenter
        14: .line 3676
            aload 5 /* mp */
            aload 7 /* drmInfo */
            putfield android.media.MediaPlayer.mDrmInfo:Landroid/media/MediaPlayer$DrmInfo;
        15: .line 3675
            aload 8
            monitorexit
        16: goto 27
      StackMap locals: java.lang.Object int int int java.lang.Object android.media.MediaPlayer android.os.Parcel android.media.MediaPlayer$DrmInfo java.lang.Object
      StackMap stack: java.lang.Throwable
        17: aload 8
            monitorexit
        18: athrow
        end local 7 // android.media.MediaPlayer$DrmInfo drmInfo
        end local 6 // android.os.Parcel parcel
        19: .line 3679
      StackMap locals:
      StackMap stack:
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "MEDIA_DRM_INFO msg.obj of unexpected type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* obj */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        20: .line 3681
            goto 27
        21: .line 3688
      StackMap locals:
      StackMap stack:
            aload 5 /* mp */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 6
            monitorenter
        22: .line 3689
            aload 5 /* mp */
            iconst_1
            putfield android.media.MediaPlayer.mDrmInfoResolved:Z
        23: .line 3688
            aload 6
            monitorexit
        24: goto 27
      StackMap locals: java.lang.Object int int int java.lang.Object android.media.MediaPlayer java.lang.Object
      StackMap stack: java.lang.Throwable
        25: aload 6
            monitorexit
        26: athrow
        27: .line 3693
      StackMap locals:
      StackMap stack:
            aload 5 /* mp */
        28: .line 3695
            getfield android.media.MediaPlayer.mEventHandler:Landroid/media/MediaPlayer$EventHandler;
            ifnull 31
        29: .line 3696
            aload 5 /* mp */
            getfield android.media.MediaPlayer.mEventHandler:Landroid/media/MediaPlayer$EventHandler;
            iload 1 /* what */
            iload 2 /* arg1 */
            iload 3 /* arg2 */
            aload 4 /* obj */
            invokevirtual android.media.MediaPlayer$EventHandler.obtainMessage:(IIILjava/lang/Object;)Landroid/os/Message;
            astore 6 /* m */
        start local 6 // android.os.Message m
        30: .line 3697
            aload 5 /* mp */
            getfield android.media.MediaPlayer.mEventHandler:Landroid/media/MediaPlayer$EventHandler;
            aload 6 /* m */
            invokevirtual android.media.MediaPlayer$EventHandler.sendMessage:(Landroid/os/Message;)Z
            pop
        end local 6 // android.os.Message m
        31: .line 3699
      StackMap locals:
      StackMap stack:
            return
        end local 5 // android.media.MediaPlayer mp
        end local 4 // java.lang.Object obj
        end local 3 // int arg2
        end local 2 // int arg1
        end local 1 // int what
        end local 0 // java.lang.Object mediaplayer_ref
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   32     0  mediaplayer_ref  Ljava/lang/Object;
            0   32     1             what  I
            0   32     2             arg1  I
            0   32     3             arg2  I
            0   32     4              obj  Ljava/lang/Object;
            1   32     5               mp  Landroid/media/MediaPlayer;
           12   19     6           parcel  Landroid/os/Parcel;
           13   19     7          drmInfo  Landroid/media/MediaPlayer$DrmInfo;
           30   31     6                m  Landroid/os/Message;
      Exception table:
        from    to  target  type
          14    16      17  any
          17    18      17  any
          22    24      25  any
          25    26      25  any
    MethodParameters:
                 Name  Flags
      mediaplayer_ref  
      what             
      arg1             
      arg2             
      obj              

  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.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnPreparedListener listener
         0: .line 3723
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.MediaPlayer.mOnPreparedListener:Landroid/media/MediaPlayer$OnPreparedListener;
         1: .line 3724
            return
        end local 1 // android.media.MediaPlayer$OnPreparedListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaPlayer;
            0    2     1  listener  Landroid/media/MediaPlayer$OnPreparedListener;
    MethodParameters:
          Name  Flags
      listener  

  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.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnCompletionListener listener
         0: .line 3750
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.MediaPlayer.mOnCompletionListener:Landroid/media/MediaPlayer$OnCompletionListener;
         1: .line 3751
            return
        end local 1 // android.media.MediaPlayer$OnCompletionListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaPlayer;
            0    2     1  listener  Landroid/media/MediaPlayer$OnCompletionListener;
    MethodParameters:
          Name  Flags
      listener  

  public void setOnBufferingUpdateListener(android.media.MediaPlayer$OnBufferingUpdateListener);
    descriptor: (Landroid/media/MediaPlayer$OnBufferingUpdateListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnBufferingUpdateListener listener
         0: .line 3795
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.MediaPlayer.mOnBufferingUpdateListener:Landroid/media/MediaPlayer$OnBufferingUpdateListener;
         1: .line 3796
            return
        end local 1 // android.media.MediaPlayer$OnBufferingUpdateListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaPlayer;
            0    2     1  listener  Landroid/media/MediaPlayer$OnBufferingUpdateListener;
    MethodParameters:
          Name  Flags
      listener  

  public void setOnSeekCompleteListener(android.media.MediaPlayer$OnSeekCompleteListener);
    descriptor: (Landroid/media/MediaPlayer$OnSeekCompleteListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnSeekCompleteListener listener
         0: .line 3822
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.MediaPlayer.mOnSeekCompleteListener:Landroid/media/MediaPlayer$OnSeekCompleteListener;
         1: .line 3823
            return
        end local 1 // android.media.MediaPlayer$OnSeekCompleteListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaPlayer;
            0    2     1  listener  Landroid/media/MediaPlayer$OnSeekCompleteListener;
    MethodParameters:
          Name  Flags
      listener  

  public void setOnVideoSizeChangedListener(android.media.MediaPlayer$OnVideoSizeChangedListener);
    descriptor: (Landroid/media/MediaPlayer$OnVideoSizeChangedListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnVideoSizeChangedListener listener
         0: .line 3854
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.MediaPlayer.mOnVideoSizeChangedListener:Landroid/media/MediaPlayer$OnVideoSizeChangedListener;
         1: .line 3855
            return
        end local 1 // android.media.MediaPlayer$OnVideoSizeChangedListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaPlayer;
            0    2     1  listener  Landroid/media/MediaPlayer$OnVideoSizeChangedListener;
    MethodParameters:
          Name  Flags
      listener  

  public void setOnTimedTextListener(android.media.MediaPlayer$OnTimedTextListener);
    descriptor: (Landroid/media/MediaPlayer$OnTimedTextListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnTimedTextListener listener
         0: .line 3883
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.MediaPlayer.mOnTimedTextListener:Landroid/media/MediaPlayer$OnTimedTextListener;
         1: .line 3884
            return
        end local 1 // android.media.MediaPlayer$OnTimedTextListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaPlayer;
            0    2     1  listener  Landroid/media/MediaPlayer$OnTimedTextListener;
    MethodParameters:
          Name  Flags
      listener  

  public void setOnSubtitleDataListener(android.media.MediaPlayer$OnSubtitleDataListener, android.os.Handler);
    descriptor: (Landroid/media/MediaPlayer$OnSubtitleDataListener;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnSubtitleDataListener listener
        start local 2 // android.os.Handler handler
         0: .line 3915
            aload 1 /* listener */
            ifnonnull 2
         1: .line 3916
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null listener"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3918
      StackMap locals:
      StackMap stack:
            aload 2 /* handler */
            ifnonnull 4
         3: .line 3919
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null handler"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 3921
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* listener */
            aload 2 /* handler */
            invokevirtual android.media.MediaPlayer.setOnSubtitleDataListenerInt:(Landroid/media/MediaPlayer$OnSubtitleDataListener;Landroid/os/Handler;)V
         5: .line 3922
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.media.MediaPlayer$OnSubtitleDataListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Landroid/media/MediaPlayer;
            0    6     1  listener  Landroid/media/MediaPlayer$OnSubtitleDataListener;
            0    6     2   handler  Landroid/os/Handler;
    MethodParameters:
          Name  Flags
      listener  
      handler   

  public void setOnSubtitleDataListener(android.media.MediaPlayer$OnSubtitleDataListener);
    descriptor: (Landroid/media/MediaPlayer$OnSubtitleDataListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnSubtitleDataListener listener
         0: .line 3936
            aload 1 /* listener */
            ifnonnull 2
         1: .line 3937
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null listener"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3939
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* listener */
            aconst_null
            invokevirtual android.media.MediaPlayer.setOnSubtitleDataListenerInt:(Landroid/media/MediaPlayer$OnSubtitleDataListener;Landroid/os/Handler;)V
         3: .line 3940
            return
        end local 1 // android.media.MediaPlayer$OnSubtitleDataListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Landroid/media/MediaPlayer;
            0    4     1  listener  Landroid/media/MediaPlayer$OnSubtitleDataListener;
    MethodParameters:
          Name  Flags
      listener  

  public void clearOnSubtitleDataListener();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 3948
            aload 0 /* this */
            aconst_null
            aconst_null
            invokevirtual android.media.MediaPlayer.setOnSubtitleDataListenerInt:(Landroid/media/MediaPlayer$OnSubtitleDataListener;Landroid/os/Handler;)V
         1: .line 3949
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaPlayer;

  private void setOnSubtitleDataListenerInt(android.media.MediaPlayer$OnSubtitleDataListener, android.os.Handler);
    descriptor: (Landroid/media/MediaPlayer$OnSubtitleDataListener;Landroid/os/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnSubtitleDataListener listener
        start local 2 // android.os.Handler handler
         0: .line 3953
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 3954
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.MediaPlayer.mExtSubtitleDataListener:Landroid/media/MediaPlayer$OnSubtitleDataListener;
         2: .line 3955
            aload 0 /* this */
            aload 2 /* handler */
            putfield android.media.MediaPlayer.mExtSubtitleDataHandler:Landroid/os/Handler;
         3: .line 3953
            aload 3
            monitorexit
         4: goto 7
      StackMap locals: android.media.MediaPlayer android.media.MediaPlayer$OnSubtitleDataListener android.os.Handler android.media.MediaPlayer
      StackMap stack: java.lang.Throwable
         5: aload 3
            monitorexit
         6: athrow
         7: .line 3957
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.media.MediaPlayer$OnSubtitleDataListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Landroid/media/MediaPlayer;
            0    8     1  listener  Landroid/media/MediaPlayer$OnSubtitleDataListener;
            0    8     2   handler  Landroid/os/Handler;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
          Name  Flags
      listener  
      handler   

  public void setOnMediaTimeDiscontinuityListener(android.media.MediaPlayer$OnMediaTimeDiscontinuityListener, android.os.Handler);
    descriptor: (Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnMediaTimeDiscontinuityListener listener
        start local 2 // android.os.Handler handler
         0: .line 4000
            aload 1 /* listener */
            ifnonnull 2
         1: .line 4001
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null listener"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4003
      StackMap locals:
      StackMap stack:
            aload 2 /* handler */
            ifnonnull 4
         3: .line 4004
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null handler"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 4006
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* listener */
            aload 2 /* handler */
            invokevirtual android.media.MediaPlayer.setOnMediaTimeDiscontinuityListenerInt:(Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;Landroid/os/Handler;)V
         5: .line 4007
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.media.MediaPlayer$OnMediaTimeDiscontinuityListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Landroid/media/MediaPlayer;
            0    6     1  listener  Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;
            0    6     2   handler  Landroid/os/Handler;
    MethodParameters:
          Name  Flags
      listener  
      handler   

  public void setOnMediaTimeDiscontinuityListener(android.media.MediaPlayer$OnMediaTimeDiscontinuityListener);
    descriptor: (Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnMediaTimeDiscontinuityListener listener
         0: .line 4018
            aload 1 /* listener */
            ifnonnull 2
         1: .line 4019
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null listener"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4021
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* listener */
            aconst_null
            invokevirtual android.media.MediaPlayer.setOnMediaTimeDiscontinuityListenerInt:(Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;Landroid/os/Handler;)V
         3: .line 4022
            return
        end local 1 // android.media.MediaPlayer$OnMediaTimeDiscontinuityListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Landroid/media/MediaPlayer;
            0    4     1  listener  Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;
    MethodParameters:
          Name  Flags
      listener  

  public void clearOnMediaTimeDiscontinuityListener();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 4030
            aload 0 /* this */
            aconst_null
            aconst_null
            invokevirtual android.media.MediaPlayer.setOnMediaTimeDiscontinuityListenerInt:(Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;Landroid/os/Handler;)V
         1: .line 4031
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaPlayer;

  private void setOnMediaTimeDiscontinuityListenerInt(android.media.MediaPlayer$OnMediaTimeDiscontinuityListener, android.os.Handler);
    descriptor: (Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;Landroid/os/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnMediaTimeDiscontinuityListener listener
        start local 2 // android.os.Handler handler
         0: .line 4035
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 4036
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.MediaPlayer.mOnMediaTimeDiscontinuityListener:Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;
         2: .line 4037
            aload 0 /* this */
            aload 2 /* handler */
            putfield android.media.MediaPlayer.mOnMediaTimeDiscontinuityHandler:Landroid/os/Handler;
         3: .line 4035
            aload 3
            monitorexit
         4: goto 7
      StackMap locals: android.media.MediaPlayer android.media.MediaPlayer$OnMediaTimeDiscontinuityListener android.os.Handler android.media.MediaPlayer
      StackMap stack: java.lang.Throwable
         5: aload 3
            monitorexit
         6: athrow
         7: .line 4039
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.media.MediaPlayer$OnMediaTimeDiscontinuityListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Landroid/media/MediaPlayer;
            0    8     1  listener  Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;
            0    8     2   handler  Landroid/os/Handler;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
          Name  Flags
      listener  
      handler   

  public void setOnTimedMetaDataAvailableListener(android.media.MediaPlayer$OnTimedMetaDataAvailableListener);
    descriptor: (Landroid/media/MediaPlayer$OnTimedMetaDataAvailableListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnTimedMetaDataAvailableListener listener
         0: .line 4079
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.MediaPlayer.mOnTimedMetaDataAvailableListener:Landroid/media/MediaPlayer$OnTimedMetaDataAvailableListener;
         1: .line 4080
            return
        end local 1 // android.media.MediaPlayer$OnTimedMetaDataAvailableListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaPlayer;
            0    2     1  listener  Landroid/media/MediaPlayer$OnTimedMetaDataAvailableListener;
    MethodParameters:
          Name  Flags
      listener  

  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.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnErrorListener listener
         0: .line 4162
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.MediaPlayer.mOnErrorListener:Landroid/media/MediaPlayer$OnErrorListener;
         1: .line 4163
            return
        end local 1 // android.media.MediaPlayer$OnErrorListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaPlayer;
            0    2     1  listener  Landroid/media/MediaPlayer$OnErrorListener;
    MethodParameters:
          Name  Flags
      listener  

  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.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnInfoListener listener
         0: .line 4306
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.MediaPlayer.mOnInfoListener:Landroid/media/MediaPlayer$OnInfoListener;
         1: .line 4307
            return
        end local 1 // android.media.MediaPlayer$OnInfoListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaPlayer;
            0    2     1  listener  Landroid/media/MediaPlayer$OnInfoListener;
    MethodParameters:
          Name  Flags
      listener  

  public void setOnDrmConfigHelper(android.media.MediaPlayer$OnDrmConfigHelper);
    descriptor: (Landroid/media/MediaPlayer$OnDrmConfigHelper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnDrmConfigHelper listener
         0: .line 4344
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 4345
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.MediaPlayer.mOnDrmConfigHelper:Landroid/media/MediaPlayer$OnDrmConfigHelper;
         2: .line 4344
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.media.MediaPlayer android.media.MediaPlayer$OnDrmConfigHelper java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 4347
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.MediaPlayer$OnDrmConfigHelper listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/media/MediaPlayer;
            0    7     1  listener  Landroid/media/MediaPlayer$OnDrmConfigHelper;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
          Name  Flags
      listener  

  public void setOnDrmInfoListener(android.media.MediaPlayer$OnDrmInfoListener);
    descriptor: (Landroid/media/MediaPlayer$OnDrmInfoListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnDrmInfoListener listener
         0: .line 4375
            aload 0 /* this */
            aload 1 /* listener */
            aconst_null
            invokevirtual android.media.MediaPlayer.setOnDrmInfoListener:(Landroid/media/MediaPlayer$OnDrmInfoListener;Landroid/os/Handler;)V
         1: .line 4376
            return
        end local 1 // android.media.MediaPlayer$OnDrmInfoListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaPlayer;
            0    2     1  listener  Landroid/media/MediaPlayer$OnDrmInfoListener;
    MethodParameters:
          Name  Flags
      listener  

  public void setOnDrmInfoListener(android.media.MediaPlayer$OnDrmInfoListener, android.os.Handler);
    descriptor: (Landroid/media/MediaPlayer$OnDrmInfoListener;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnDrmInfoListener listener
        start local 2 // android.os.Handler handler
         0: .line 4386
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 4387
            aload 1 /* listener */
            ifnull 4
         2: .line 4388
            aload 0 /* this */
            new android.media.MediaPlayer$OnDrmInfoHandlerDelegate
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* listener */
            aload 2 /* handler */
            invokespecial android.media.MediaPlayer$OnDrmInfoHandlerDelegate.<init>:(Landroid/media/MediaPlayer;Landroid/media/MediaPlayer;Landroid/media/MediaPlayer$OnDrmInfoListener;Landroid/os/Handler;)V
            putfield android.media.MediaPlayer.mOnDrmInfoHandlerDelegate:Landroid/media/MediaPlayer$OnDrmInfoHandlerDelegate;
         3: .line 4389
            goto 5
         4: .line 4390
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnDrmInfoHandlerDelegate:Landroid/media/MediaPlayer$OnDrmInfoHandlerDelegate;
         5: .line 4386
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 4393
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.media.MediaPlayer$OnDrmInfoListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Landroid/media/MediaPlayer;
            0   10     1  listener  Landroid/media/MediaPlayer$OnDrmInfoListener;
            0   10     2   handler  Landroid/os/Handler;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    MethodParameters:
          Name  Flags
      listener  
      handler   

  public void setOnDrmPreparedListener(android.media.MediaPlayer$OnDrmPreparedListener);
    descriptor: (Landroid/media/MediaPlayer$OnDrmPreparedListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnDrmPreparedListener listener
         0: .line 4458
            aload 0 /* this */
            aload 1 /* listener */
            aconst_null
            invokevirtual android.media.MediaPlayer.setOnDrmPreparedListener:(Landroid/media/MediaPlayer$OnDrmPreparedListener;Landroid/os/Handler;)V
         1: .line 4459
            return
        end local 1 // android.media.MediaPlayer$OnDrmPreparedListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaPlayer;
            0    2     1  listener  Landroid/media/MediaPlayer$OnDrmPreparedListener;
    MethodParameters:
          Name  Flags
      listener  

  public void setOnDrmPreparedListener(android.media.MediaPlayer$OnDrmPreparedListener, android.os.Handler);
    descriptor: (Landroid/media/MediaPlayer$OnDrmPreparedListener;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // android.media.MediaPlayer$OnDrmPreparedListener listener
        start local 2 // android.os.Handler handler
         0: .line 4469
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 4470
            aload 1 /* listener */
            ifnull 6
         2: .line 4471
            aload 0 /* this */
            new android.media.MediaPlayer$OnDrmPreparedHandlerDelegate
            dup
            aload 0 /* this */
            aload 0 /* this */
         3: .line 4472
            aload 1 /* listener */
            aload 2 /* handler */
            invokespecial android.media.MediaPlayer$OnDrmPreparedHandlerDelegate.<init>:(Landroid/media/MediaPlayer;Landroid/media/MediaPlayer;Landroid/media/MediaPlayer$OnDrmPreparedListener;Landroid/os/Handler;)V
         4: .line 4471
            putfield android.media.MediaPlayer.mOnDrmPreparedHandlerDelegate:Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;
         5: .line 4473
            goto 7
         6: .line 4474
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mOnDrmPreparedHandlerDelegate:Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;
         7: .line 4469
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        11: .line 4477
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.media.MediaPlayer$OnDrmPreparedListener listener
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Landroid/media/MediaPlayer;
            0   12     1  listener  Landroid/media/MediaPlayer$OnDrmPreparedListener;
            0   12     2   handler  Landroid/os/Handler;
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    MethodParameters:
          Name  Flags
      listener  
      handler   

  public android.media.MediaPlayer$DrmInfo getDrmInfo();
    descriptor: ()Landroid/media/MediaPlayer$DrmInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 4561
            aconst_null
            astore 1 /* drmInfo */
        start local 1 // android.media.MediaPlayer$DrmInfo drmInfo
         1: .line 4565
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         2: .line 4566
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmInfoResolved:Z
            ifne 5
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmInfo:Landroid/media/MediaPlayer$DrmInfo;
            ifnonnull 5
         3: .line 4568
            ldc "MediaPlayer"
            ldc "The Player has not been prepared yet"
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 4569
            new java.lang.IllegalStateException
            dup
            ldc "The Player has not been prepared yet"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 4572
      StackMap locals: android.media.MediaPlayer$DrmInfo java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmInfo:Landroid/media/MediaPlayer$DrmInfo;
            ifnull 7
         6: .line 4573
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmInfo:Landroid/media/MediaPlayer$DrmInfo;
            invokevirtual android.media.MediaPlayer$DrmInfo.makeCopy:()Landroid/media/MediaPlayer$DrmInfo;
            astore 1 /* drmInfo */
         7: .line 4565
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 4577
      StackMap locals:
      StackMap stack:
            aload 1 /* drmInfo */
            areturn
        end local 1 // android.media.MediaPlayer$DrmInfo drmInfo
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Landroid/media/MediaPlayer;
            1   12     1  drmInfo  Landroid/media/MediaPlayer$DrmInfo;
      Exception table:
        from    to  target  type
           2     8       9  any
           9    10       9  any

  public void prepareDrm(java.util.UUID);
    descriptor: (Ljava/util/UUID;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.util.UUID uuid
         0: .line 4621
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "prepareDrm: uuid: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* uuid */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " mOnDrmConfigHelper: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.media.MediaPlayer.mOnDrmConfigHelper:Landroid/media/MediaPlayer$OnDrmConfigHelper;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 4623
            iconst_0
            istore 2 /* allDoneWithoutProvisioning */
        start local 2 // boolean allDoneWithoutProvisioning
         2: .line 4625
            aconst_null
            astore 3 /* onDrmPreparedHandlerDelegate */
        start local 3 // android.media.MediaPlayer$OnDrmPreparedHandlerDelegate onDrmPreparedHandlerDelegate
         3: .line 4627
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         4: .line 4630
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmInfo:Landroid/media/MediaPlayer$DrmInfo;
            ifnonnull 7
         5: .line 4633
            ldc "MediaPlayer"
            ldc "prepareDrm(): Wrong usage: The player must be prepared and DRM info be retrieved before this call."
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         6: .line 4634
            new java.lang.IllegalStateException
            dup
            ldc "prepareDrm(): Wrong usage: The player must be prepared and DRM info be retrieved before this call."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 4637
      StackMap locals: int android.media.MediaPlayer$OnDrmPreparedHandlerDelegate java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mActiveDrmScheme:Z
            ifeq 13
         8: .line 4638
            new java.lang.StringBuilder
            dup
            ldc "prepareDrm(): Wrong usage: There is already an active DRM scheme with "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 4639
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmUUID:Ljava/util/UUID;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        10: .line 4638
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
        11: .line 4640
            ldc "MediaPlayer"
            aload 5 /* msg */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        12: .line 4641
            new java.lang.IllegalStateException
            dup
            aload 5 /* msg */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String msg
        13: .line 4644
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mPrepareDrmInProgress:Z
            ifeq 16
        14: .line 4647
            ldc "MediaPlayer"
            ldc "prepareDrm(): Wrong usage: There is already a pending prepareDrm call."
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        15: .line 4648
            new java.lang.IllegalStateException
            dup
            ldc "prepareDrm(): Wrong usage: There is already a pending prepareDrm call."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 4651
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmProvisioningInProgress:Z
            ifeq 19
        17: .line 4653
            ldc "MediaPlayer"
            ldc "prepareDrm(): Unexpectd: Provisioning is already in progress."
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        18: .line 4654
            new java.lang.IllegalStateException
            dup
            ldc "prepareDrm(): Unexpectd: Provisioning is already in progress."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 4658
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.cleanDrmObj:()V
        20: .line 4660
            aload 0 /* this */
            iconst_1
            putfield android.media.MediaPlayer.mPrepareDrmInProgress:Z
        21: .line 4662
            aload 0 /* this */
            getfield android.media.MediaPlayer.mOnDrmPreparedHandlerDelegate:Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;
            astore 3 /* onDrmPreparedHandlerDelegate */
        22: .line 4666
            aload 0 /* this */
            aload 1 /* uuid */
            invokevirtual android.media.MediaPlayer.prepareDrm_createDrmStep:(Ljava/util/UUID;)V
        23: .line 4667
            goto 28
      StackMap locals:
      StackMap stack: java.lang.Exception
        24: astore 5 /* e */
        start local 5 // java.lang.Exception e
        25: .line 4668
            ldc "MediaPlayer"
            ldc "prepareDrm(): Exception "
            aload 5 /* e */
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        26: .line 4669
            aload 0 /* this */
            iconst_0
            putfield android.media.MediaPlayer.mPrepareDrmInProgress:Z
        27: .line 4670
            aload 5 /* e */
            athrow
        end local 5 // java.lang.Exception e
        28: .line 4673
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.media.MediaPlayer.mDrmConfigAllowed:Z
        29: .line 4627
            aload 4
            monitorexit
        30: goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: aload 4
            monitorexit
        32: athrow
        33: .line 4678
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mOnDrmConfigHelper:Landroid/media/MediaPlayer$OnDrmConfigHelper;
            ifnull 35
        34: .line 4679
            aload 0 /* this */
            getfield android.media.MediaPlayer.mOnDrmConfigHelper:Landroid/media/MediaPlayer$OnDrmConfigHelper;
            aload 0 /* this */
            invokeinterface android.media.MediaPlayer$OnDrmConfigHelper.onDrmConfig:(Landroid/media/MediaPlayer;)V
        35: .line 4682
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
        36: .line 4683
            aload 0 /* this */
            iconst_0
            putfield android.media.MediaPlayer.mDrmConfigAllowed:Z
        37: .line 4684
            iconst_0
            istore 5 /* earlyExit */
        start local 5 // boolean earlyExit
        38: .line 4687
            aload 0 /* this */
            aload 1 /* uuid */
            invokevirtual android.media.MediaPlayer.prepareDrm_openSessionStep:(Ljava/util/UUID;)V
        39: .line 4689
            aload 0 /* this */
            aload 1 /* uuid */
            putfield android.media.MediaPlayer.mDrmUUID:Ljava/util/UUID;
        40: .line 4690
            aload 0 /* this */
            iconst_1
            putfield android.media.MediaPlayer.mActiveDrmScheme:Z
        41: .line 4692
            iconst_1
            istore 2 /* allDoneWithoutProvisioning */
        42: .line 4693
            goto 76
      StackMap locals: android.media.MediaPlayer java.util.UUID int android.media.MediaPlayer$OnDrmPreparedHandlerDelegate java.lang.Object int
      StackMap stack: java.lang.IllegalStateException
        43: pop
        44: .line 4696
            ldc "MediaPlayer"
            ldc "prepareDrm(): Wrong usage: The player must be in the prepared state to call prepareDrm()."
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        45: .line 4697
            iconst_1
            istore 5 /* earlyExit */
        46: .line 4698
            new java.lang.IllegalStateException
            dup
            ldc "prepareDrm(): Wrong usage: The player must be in the prepared state to call prepareDrm()."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        47: .line 4699
      StackMap locals:
      StackMap stack: android.media.NotProvisionedException
            pop
        48: .line 4700
            ldc "MediaPlayer"
            ldc "prepareDrm: NotProvisionedException"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        49: .line 4703
            aload 0 /* this */
            aload 1 /* uuid */
            invokevirtual android.media.MediaPlayer.HandleProvisioninig:(Ljava/util/UUID;)I
            istore 6 /* result */
        start local 6 // int result
        50: .line 4707
            iload 6 /* result */
            ifeq 62
        51: .line 4708
            iconst_1
            istore 5 /* earlyExit */
        52: .line 4711
            iload 6 /* result */
            tableswitch { // 1 - 3
                    1: 53
                    2: 56
                    3: 59
              default: 59
          }
        53: .line 4713
      StackMap locals: int
      StackMap stack:
            ldc "prepareDrm: Provisioning was required but failed due to a network error."
            astore 7 /* msg */
        start local 7 // java.lang.String msg
        54: .line 4715
            ldc "MediaPlayer"
            aload 7 /* msg */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        55: .line 4716
            new android.media.MediaPlayer$ProvisioningNetworkErrorException
            dup
            aload 7 /* msg */
            invokespecial android.media.MediaPlayer$ProvisioningNetworkErrorException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.String msg
        56: .line 4719
      StackMap locals:
      StackMap stack:
            ldc "prepareDrm: Provisioning was required but the request was denied by the server."
            astore 7 /* msg */
        start local 7 // java.lang.String msg
        57: .line 4721
            ldc "MediaPlayer"
            aload 7 /* msg */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        58: .line 4722
            new android.media.MediaPlayer$ProvisioningServerErrorException
            dup
            aload 7 /* msg */
            invokespecial android.media.MediaPlayer$ProvisioningServerErrorException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.String msg
        59: .line 4726
      StackMap locals:
      StackMap stack:
            ldc "prepareDrm: Post-provisioning preparation failed."
            astore 7 /* msg */
        start local 7 // java.lang.String msg
        60: .line 4727
            ldc "MediaPlayer"
            aload 7 /* msg */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        61: .line 4728
            new java.lang.IllegalStateException
            dup
            aload 7 /* msg */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.String msg
        end local 6 // int result
        62: .line 4738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmProvisioningInProgress:Z
            ifne 64
        63: .line 4739
            aload 0 /* this */
            iconst_0
            putfield android.media.MediaPlayer.mPrepareDrmInProgress:Z
        64: .line 4741
      StackMap locals:
      StackMap stack:
            iload 5 /* earlyExit */
            ifeq 80
        65: .line 4742
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.cleanDrmObj:()V
            goto 80
        66: .line 4733
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 6 /* e */
        start local 6 // java.lang.Exception e
        67: .line 4734
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "prepareDrm: Exception "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        68: .line 4735
            iconst_1
            istore 5 /* earlyExit */
        69: .line 4736
            aload 6 /* e */
            athrow
        end local 6 // java.lang.Exception e
        70: .line 4737
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        71: .line 4738
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmProvisioningInProgress:Z
            ifne 73
        72: .line 4739
            aload 0 /* this */
            iconst_0
            putfield android.media.MediaPlayer.mPrepareDrmInProgress:Z
        73: .line 4741
      StackMap locals: android.media.MediaPlayer java.util.UUID int android.media.MediaPlayer$OnDrmPreparedHandlerDelegate java.lang.Object int top top java.lang.Throwable
      StackMap stack:
            iload 5 /* earlyExit */
            ifeq 75
        74: .line 4742
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.cleanDrmObj:()V
        75: .line 4744
      StackMap locals:
      StackMap stack:
            aload 8
            athrow
        76: .line 4738
      StackMap locals: android.media.MediaPlayer java.util.UUID int android.media.MediaPlayer$OnDrmPreparedHandlerDelegate java.lang.Object int
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmProvisioningInProgress:Z
            ifne 78
        77: .line 4739
            aload 0 /* this */
            iconst_0
            putfield android.media.MediaPlayer.mPrepareDrmInProgress:Z
        78: .line 4741
      StackMap locals:
      StackMap stack:
            iload 5 /* earlyExit */
            ifeq 80
        79: .line 4742
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.cleanDrmObj:()V
        end local 5 // boolean earlyExit
        80: .line 4682
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        81: goto 84
      StackMap locals:
      StackMap stack: java.lang.Throwable
        82: aload 4
            monitorexit
        83: athrow
        84: .line 4749
      StackMap locals:
      StackMap stack:
            iload 2 /* allDoneWithoutProvisioning */
            ifeq 87
        85: .line 4750
            aload 3 /* onDrmPreparedHandlerDelegate */
            ifnull 87
        86: .line 4751
            aload 3 /* onDrmPreparedHandlerDelegate */
            iconst_0
            invokevirtual android.media.MediaPlayer$OnDrmPreparedHandlerDelegate.notifyClient:(I)V
        87: .line 4754
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.media.MediaPlayer$OnDrmPreparedHandlerDelegate onDrmPreparedHandlerDelegate
        end local 2 // boolean allDoneWithoutProvisioning
        end local 1 // java.util.UUID uuid
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0   88     0                          this  Landroid/media/MediaPlayer;
            0   88     1                          uuid  Ljava/util/UUID;
            2   88     2    allDoneWithoutProvisioning  Z
            3   88     3  onDrmPreparedHandlerDelegate  Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;
           11   13     5                           msg  Ljava/lang/String;
           25   28     5                             e  Ljava/lang/Exception;
           38   80     5                     earlyExit  Z
           50   62     6                        result  I
           54   56     7                           msg  Ljava/lang/String;
           57   59     7                           msg  Ljava/lang/String;
           60   62     7                           msg  Ljava/lang/String;
           67   70     6                             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          22    23      24  Class java.lang.Exception
           4    30      31  any
          31    32      31  any
          38    42      43  Class java.lang.IllegalStateException
          38    42      47  Class android.media.NotProvisionedException
          38    42      66  Class java.lang.Exception
          38    62      70  any
          66    70      70  any
          36    81      82  any
          82    83      82  any
    Exceptions:
      throws android.media.UnsupportedSchemeException, android.media.ResourceBusyException, android.media.MediaPlayer$ProvisioningNetworkErrorException, android.media.MediaPlayer$ProvisioningServerErrorException
    MethodParameters:
      Name  Flags
      uuid  

  private native void _releaseDrm();
    descriptor: ()V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  public void releaseDrm();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 4771
            ldc "MediaPlayer"
            ldc "releaseDrm:"
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 4773
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         2: .line 4774
            aload 0 /* this */
            getfield android.media.MediaPlayer.mActiveDrmScheme:Z
            ifne 5
         3: .line 4775
            ldc "MediaPlayer"
            ldc "releaseDrm(): No active DRM scheme to release."
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 4776
            new android.media.MediaPlayer$NoDrmSchemeException
            dup
            ldc "releaseDrm: No active DRM scheme to release."
            invokespecial android.media.MediaPlayer$NoDrmSchemeException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 4784
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer._releaseDrm:()V
         6: .line 4787
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.cleanDrmObj:()V
         7: .line 4789
            aload 0 /* this */
            iconst_0
            putfield android.media.MediaPlayer.mActiveDrmScheme:Z
         8: .line 4790
            goto 14
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
         9: astore 2 /* e */
        start local 2 // java.lang.IllegalStateException e
        10: .line 4791
            ldc "MediaPlayer"
            ldc "releaseDrm: Exception "
            aload 2 /* e */
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        11: .line 4792
            new java.lang.IllegalStateException
            dup
            ldc "releaseDrm: The player is not in a valid state."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.IllegalStateException e
        12: .line 4793
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        13: .line 4794
            ldc "MediaPlayer"
            ldc "releaseDrm: Exception "
            aload 2 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // java.lang.Exception e
        14: .line 4773
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        15: goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: aload 1
            monitorexit
        17: athrow
        18: .line 4797
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Landroid/media/MediaPlayer;
           10   12     2     e  Ljava/lang/IllegalStateException;
           13   14     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5     8       9  Class java.lang.IllegalStateException
           5     8      12  Class java.lang.Exception
           2    15      16  any
          16    17      16  any
    Exceptions:
      throws android.media.MediaPlayer$NoDrmSchemeException

  public android.media.MediaDrm$KeyRequest getKeyRequest(byte[], byte[], java.lang.String, int, java.util.Map<java.lang.String, java.lang.String>);
    descriptor: ([B[BLjava/lang/String;ILjava/util/Map;)Landroid/media/MediaDrm$KeyRequest;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=6
        start local 0 // android.media.MediaPlayer this
        start local 1 // byte[] keySetId
        start local 2 // byte[] initData
        start local 3 // java.lang.String mimeType
        start local 4 // int keyType
        start local 5 // java.util.Map optionalParameters
         0: .line 4843
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "getKeyRequest:  keySetId: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 4844
            aload 1 /* keySetId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " initData:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* initData */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " mimeType: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* mimeType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 4845
            ldc " keyType: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* keyType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " optionalParameters: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* optionalParameters */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 4843
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 4847
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 6
            monitorenter
         5: .line 4848
            aload 0 /* this */
            getfield android.media.MediaPlayer.mActiveDrmScheme:Z
            ifne 8
         6: .line 4849
            ldc "MediaPlayer"
            ldc "getKeyRequest NoDrmSchemeException"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         7: .line 4850
            new android.media.MediaPlayer$NoDrmSchemeException
            dup
            ldc "getKeyRequest: Has to set a DRM scheme first."
            invokespecial android.media.MediaPlayer$NoDrmSchemeException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 4854
      StackMap locals: java.lang.Object
      StackMap stack:
            iload 4 /* keyType */
            iconst_3
            if_icmpeq 10
         9: .line 4855
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmSessionId:[B
            goto 11
        10: .line 4856
      StackMap locals:
      StackMap stack:
            aload 1 /* keySetId */
        11: .line 4854
      StackMap locals:
      StackMap stack: byte[]
            astore 7 /* scope */
        start local 7 // byte[] scope
        12: .line 4859
            aload 5 /* optionalParameters */
            ifnull 14
        13: .line 4860
            new java.util.HashMap
            dup
            aload 5 /* optionalParameters */
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            goto 15
        14: .line 4861
      StackMap locals: byte[]
      StackMap stack:
            aconst_null
        15: .line 4858
      StackMap locals:
      StackMap stack: java.util.HashMap
            astore 8 /* hmapOptionalParameters */
        start local 8 // java.util.HashMap hmapOptionalParameters
        16: .line 4863
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
            aload 7 /* scope */
            aload 2 /* initData */
            aload 3 /* mimeType */
        17: .line 4864
            iload 4 /* keyType */
            aload 8 /* hmapOptionalParameters */
        18: .line 4863
            invokevirtual android.media.MediaDrm.getKeyRequest:([B[BLjava/lang/String;ILjava/util/HashMap;)Landroid/media/MediaDrm$KeyRequest;
            astore 9 /* request */
        start local 9 // android.media.MediaDrm$KeyRequest request
        19: .line 4865
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "getKeyRequest:   --> request: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* request */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        20: .line 4867
            aload 9 /* request */
        21: aload 6
            monitorexit
        22: areturn
        end local 9 // android.media.MediaDrm$KeyRequest request
        end local 8 // java.util.HashMap hmapOptionalParameters
        end local 7 // byte[] scope
        23: .line 4869
      StackMap locals: android.media.MediaPlayer byte[] byte[] java.lang.String int java.util.Map java.lang.Object
      StackMap stack: android.media.NotProvisionedException
            pop
        24: .line 4870
            ldc "MediaPlayer"
            ldc "getKeyRequest NotProvisionedException: Unexpected. Shouldn't have reached here."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        25: .line 4872
            new java.lang.IllegalStateException
            dup
            ldc "getKeyRequest: Unexpected provisioning error."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 4873
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 7 /* e */
        start local 7 // java.lang.Exception e
        27: .line 4874
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "getKeyRequest Exception "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        28: .line 4875
            aload 7 /* e */
            athrow
        end local 7 // java.lang.Exception e
        29: .line 4847
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 6
            monitorexit
        30: athrow
        end local 5 // java.util.Map optionalParameters
        end local 4 // int keyType
        end local 3 // java.lang.String mimeType
        end local 2 // byte[] initData
        end local 1 // byte[] keySetId
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   31     0                    this  Landroid/media/MediaPlayer;
            0   31     1                keySetId  [B
            0   31     2                initData  [B
            0   31     3                mimeType  Ljava/lang/String;
            0   31     4                 keyType  I
            0   31     5      optionalParameters  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           12   23     7                   scope  [B
           16   23     8  hmapOptionalParameters  Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;
           19   23     9                 request  Landroid/media/MediaDrm$KeyRequest;
           27   29     7                       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           8    21      23  Class android.media.NotProvisionedException
           8    21      26  Class java.lang.Exception
           5    22      29  any
          23    30      29  any
    Exceptions:
      throws android.media.MediaPlayer$NoDrmSchemeException
    Signature: ([B[BLjava/lang/String;ILjava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Landroid/media/MediaDrm$KeyRequest;
    MethodParameters:
                    Name  Flags
      keySetId            
      initData            
      mimeType            
      keyType             
      optionalParameters  

  public byte[] provideKeyResponse(byte[], byte[]);
    descriptor: ([B[B)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // byte[] keySetId
        start local 2 // byte[] response
         0: .line 4904
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "provideKeyResponse: keySetId: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* keySetId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " response: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* response */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 4906
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         2: .line 4908
            aload 0 /* this */
            getfield android.media.MediaPlayer.mActiveDrmScheme:Z
            ifne 5
         3: .line 4909
            ldc "MediaPlayer"
            ldc "getKeyRequest NoDrmSchemeException"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 4910
            new android.media.MediaPlayer$NoDrmSchemeException
            dup
            ldc "getKeyRequest: Has to set a DRM scheme first."
            invokespecial android.media.MediaPlayer$NoDrmSchemeException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 4914
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* keySetId */
            ifnonnull 7
         6: .line 4915
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmSessionId:[B
            goto 8
         7: .line 4916
      StackMap locals:
      StackMap stack:
            aload 1 /* keySetId */
         8: .line 4914
      StackMap locals:
      StackMap stack: byte[]
            astore 4 /* scope */
        start local 4 // byte[] scope
         9: .line 4918
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
            aload 4 /* scope */
            aload 2 /* response */
            invokevirtual android.media.MediaDrm.provideKeyResponse:([B[B)[B
            astore 5 /* keySetResult */
        start local 5 // byte[] keySetResult
        10: .line 4920
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "provideKeyResponse: keySetId: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* keySetId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " response: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* response */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        11: .line 4921
            ldc " --> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* keySetResult */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 4920
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        13: .line 4924
            aload 5 /* keySetResult */
        14: aload 3
            monitorexit
        15: areturn
        end local 5 // byte[] keySetResult
        end local 4 // byte[] scope
        16: .line 4926
      StackMap locals:
      StackMap stack: android.media.NotProvisionedException
            pop
        17: .line 4927
            ldc "MediaPlayer"
            ldc "provideKeyResponse NotProvisionedException: Unexpected. Shouldn't have reached here."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        18: .line 4929
            new java.lang.IllegalStateException
            dup
            ldc "provideKeyResponse: Unexpected provisioning error."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 4931
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        20: .line 4932
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "provideKeyResponse Exception "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        21: .line 4933
            aload 4 /* e */
            athrow
        end local 4 // java.lang.Exception e
        22: .line 4906
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        23: athrow
        end local 2 // byte[] response
        end local 1 // byte[] keySetId
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   24     0          this  Landroid/media/MediaPlayer;
            0   24     1      keySetId  [B
            0   24     2      response  [B
            9   16     4         scope  [B
           10   16     5  keySetResult  [B
           20   22     4             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5    14      16  Class android.media.NotProvisionedException
           5    14      19  Class java.lang.Exception
           2    15      22  any
          16    23      22  any
    Exceptions:
      throws android.media.MediaPlayer$NoDrmSchemeException, android.media.DeniedByServerException
    MethodParameters:
          Name  Flags
      keySetId  
      response  

  public void restoreKeys(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // byte[] keySetId
         0: .line 4948
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "restoreKeys: keySetId: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* keySetId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 4950
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         2: .line 4952
            aload 0 /* this */
            getfield android.media.MediaPlayer.mActiveDrmScheme:Z
            ifne 5
         3: .line 4953
            ldc "MediaPlayer"
            ldc "restoreKeys NoDrmSchemeException"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 4954
            new android.media.MediaPlayer$NoDrmSchemeException
            dup
            ldc "restoreKeys: Has to set a DRM scheme first."
            invokespecial android.media.MediaPlayer$NoDrmSchemeException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 4958
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmSessionId:[B
            aload 1 /* keySetId */
            invokevirtual android.media.MediaDrm.restoreKeys:([B[B)V
         6: .line 4959
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Exception
         7: astore 3 /* e */
        start local 3 // java.lang.Exception e
         8: .line 4960
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "restoreKeys Exception "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 4961
            aload 3 /* e */
            athrow
        end local 3 // java.lang.Exception e
        10: .line 4950
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 2
            monitorexit
        13: athrow
        14: .line 4965
      StackMap locals:
      StackMap stack:
            return
        end local 1 // byte[] keySetId
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Landroid/media/MediaPlayer;
            0   15     1  keySetId  [B
            8   10     3         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Exception
           2    11      12  any
          12    13      12  any
    Exceptions:
      throws android.media.MediaPlayer$NoDrmSchemeException
    MethodParameters:
          Name  Flags
      keySetId  

  public java.lang.String getDrmPropertyString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.lang.String propertyName
         0: .line 4981
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "getDrmPropertyString: propertyName: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* propertyName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 4984
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         2: .line 4986
            aload 0 /* this */
            getfield android.media.MediaPlayer.mActiveDrmScheme:Z
            ifne 5
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmConfigAllowed:Z
            ifne 5
         3: .line 4987
            ldc "MediaPlayer"
            ldc "getDrmPropertyString NoDrmSchemeException"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 4988
            new android.media.MediaPlayer$NoDrmSchemeException
            dup
            ldc "getDrmPropertyString: Has to prepareDrm() first."
            invokespecial android.media.MediaPlayer$NoDrmSchemeException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 4992
      StackMap locals: android.media.MediaPlayer java.lang.String top java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
            aload 1 /* propertyName */
            invokevirtual android.media.MediaDrm.getPropertyString:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        start local 2 // java.lang.String value
         6: .line 4993
            goto 10
        end local 2 // java.lang.String value
      StackMap locals:
      StackMap stack: java.lang.Exception
         7: astore 4 /* e */
        start local 4 // java.lang.Exception e
         8: .line 4994
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "getDrmPropertyString Exception "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 4995
            aload 4 /* e */
            athrow
        end local 4 // java.lang.Exception e
        start local 2 // java.lang.String value
        10: .line 4984
      StackMap locals: android.media.MediaPlayer java.lang.String java.lang.String java.lang.Object
      StackMap stack:
            aload 3
            monitorexit
        11: goto 14
        end local 2 // java.lang.String value
      StackMap locals: android.media.MediaPlayer java.lang.String top java.lang.Object
      StackMap stack: java.lang.Throwable
        12: aload 3
            monitorexit
        13: athrow
        start local 2 // java.lang.String value
        14: .line 4999
      StackMap locals: android.media.MediaPlayer java.lang.String java.lang.String
      StackMap stack:
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "getDrmPropertyString: propertyName: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* propertyName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " --> value: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        15: .line 5001
            aload 2 /* value */
            areturn
        end local 2 // java.lang.String value
        end local 1 // java.lang.String propertyName
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Landroid/media/MediaPlayer;
            0   16     1  propertyName  Ljava/lang/String;
            6    7     2         value  Ljava/lang/String;
           10   12     2         value  Ljava/lang/String;
           14   16     2         value  Ljava/lang/String;
            8   10     4             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Exception
           2    11      12  any
          12    13      12  any
    Exceptions:
      throws android.media.MediaPlayer$NoDrmSchemeException
    MethodParameters:
              Name  Flags
      propertyName  

  public void setDrmPropertyString(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.String value
         0: .line 5019
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "setDrmPropertyString: propertyName: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* propertyName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " value: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 5021
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         2: .line 5023
            aload 0 /* this */
            getfield android.media.MediaPlayer.mActiveDrmScheme:Z
            ifne 5
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmConfigAllowed:Z
            ifne 5
         3: .line 5024
            ldc "MediaPlayer"
            ldc "setDrmPropertyString NoDrmSchemeException"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 5025
            new android.media.MediaPlayer$NoDrmSchemeException
            dup
            ldc "setDrmPropertyString: Has to prepareDrm() first."
            invokespecial android.media.MediaPlayer$NoDrmSchemeException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 5029
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
            aload 1 /* propertyName */
            aload 2 /* value */
            invokevirtual android.media.MediaDrm.setPropertyString:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 5030
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Exception
         7: astore 4 /* e */
        start local 4 // java.lang.Exception e
         8: .line 5031
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "setDrmPropertyString Exception "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 5032
            aload 4 /* e */
            athrow
        end local 4 // java.lang.Exception e
        10: .line 5021
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 3
            monitorexit
        13: athrow
        14: .line 5035
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String value
        end local 1 // java.lang.String propertyName
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Landroid/media/MediaPlayer;
            0   15     1  propertyName  Ljava/lang/String;
            0   15     2         value  Ljava/lang/String;
            8   10     4             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Exception
           2    11      12  any
          12    13      12  any
    Exceptions:
      throws android.media.MediaPlayer$NoDrmSchemeException
    MethodParameters:
              Name  Flags
      propertyName  
      value         

  private native void _prepareDrm(byte[], byte[]);
    descriptor: ([B[B)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
              Name  Flags
      uuid          
      drmSessionId  

  private void prepareDrm_createDrmStep(java.util.UUID);
    descriptor: (Ljava/util/UUID;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.util.UUID uuid
         0: .line 5215
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "prepareDrm_createDrmStep: UUID: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* uuid */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 5218
            aload 0 /* this */
            new android.media.MediaDrm
            dup
            aload 1 /* uuid */
            invokespecial android.media.MediaDrm.<init>:(Ljava/util/UUID;)V
            putfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
         2: .line 5219
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "prepareDrm_createDrmStep: Created mDrmObj="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         3: .line 5220
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Exception
         4: astore 2 /* e */
        start local 2 // java.lang.Exception e
         5: .line 5221
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "prepareDrm_createDrmStep: MediaDrm failed with "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         6: .line 5222
            aload 2 /* e */
            athrow
        end local 2 // java.lang.Exception e
         7: .line 5224
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.UUID uuid
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/media/MediaPlayer;
            0    8     1  uuid  Ljava/util/UUID;
            5    7     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Exception
    Exceptions:
      throws android.media.UnsupportedSchemeException
    MethodParameters:
      Name  Flags
      uuid  

  private void prepareDrm_openSessionStep(java.util.UUID);
    descriptor: (Ljava/util/UUID;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.util.UUID uuid
         0: .line 5228
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "prepareDrm_openSessionStep: uuid: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* uuid */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 5234
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
            invokevirtual android.media.MediaDrm.openSession:()[B
            putfield android.media.MediaPlayer.mDrmSessionId:[B
         2: .line 5235
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "prepareDrm_openSessionStep: mDrmSessionId="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmSessionId:[B
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         3: .line 5239
            aload 0 /* this */
            aload 1 /* uuid */
            invokestatic android.media.MediaPlayer.getByteArrayFromUUID:(Ljava/util/UUID;)[B
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmSessionId:[B
            invokevirtual android.media.MediaPlayer._prepareDrm:([B[B)V
         4: .line 5240
            ldc "MediaPlayer"
            ldc "prepareDrm_openSessionStep: _prepareDrm/Crypto succeeded"
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 5242
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Exception
         6: astore 2 /* e */
        start local 2 // java.lang.Exception e
         7: .line 5243
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "prepareDrm_openSessionStep: open/crypto failed with "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         8: .line 5244
            aload 2 /* e */
            athrow
        end local 2 // java.lang.Exception e
         9: .line 5247
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.UUID uuid
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Landroid/media/MediaPlayer;
            0   10     1  uuid  Ljava/util/UUID;
            7    9     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.Exception
    Exceptions:
      throws android.media.NotProvisionedException, android.media.ResourceBusyException
    MethodParameters:
      Name  Flags
      uuid  

  private int HandleProvisioninig(java.util.UUID);
    descriptor: (Ljava/util/UUID;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.util.UUID uuid
         0: .line 5371
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmProvisioningInProgress:Z
            ifeq 3
         1: .line 5372
            ldc "MediaPlayer"
            ldc "HandleProvisioninig: Unexpected mDrmProvisioningInProgress"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 5373
            iconst_3
            ireturn
         3: .line 5376
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
            invokevirtual android.media.MediaDrm.getProvisionRequest:()Landroid/media/MediaDrm$ProvisionRequest;
            astore 2 /* provReq */
        start local 2 // android.media.MediaDrm$ProvisionRequest provReq
         4: .line 5377
            aload 2 /* provReq */
            ifnonnull 7
         5: .line 5378
            ldc "MediaPlayer"
            ldc "HandleProvisioninig: getProvisionRequest returned null."
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         6: .line 5379
            iconst_3
            ireturn
         7: .line 5382
      StackMap locals: android.media.MediaDrm$ProvisionRequest
      StackMap stack:
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "HandleProvisioninig provReq  data: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 5383
            aload 2 /* provReq */
            invokevirtual android.media.MediaDrm$ProvisionRequest.getData:()[B
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " url: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* provReq */
            invokevirtual android.media.MediaDrm$ProvisionRequest.getDefaultUrl:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 5382
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        10: .line 5386
            aload 0 /* this */
            iconst_1
            putfield android.media.MediaPlayer.mDrmProvisioningInProgress:Z
        11: .line 5388
            aload 0 /* this */
            new android.media.MediaPlayer$ProvisioningThread
            dup
            aload 0 /* this */
            invokespecial android.media.MediaPlayer$ProvisioningThread.<init>:(Landroid/media/MediaPlayer;)V
            aload 2 /* provReq */
            aload 1 /* uuid */
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer$ProvisioningThread.initialize:(Landroid/media/MediaDrm$ProvisionRequest;Ljava/util/UUID;Landroid/media/MediaPlayer;)Landroid/media/MediaPlayer$ProvisioningThread;
            putfield android.media.MediaPlayer.mDrmProvisioningThread:Landroid/media/MediaPlayer$ProvisioningThread;
        12: .line 5389
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmProvisioningThread:Landroid/media/MediaPlayer$ProvisioningThread;
            invokevirtual android.media.MediaPlayer$ProvisioningThread.start:()V
        13: .line 5394
            aload 0 /* this */
            getfield android.media.MediaPlayer.mOnDrmPreparedHandlerDelegate:Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;
            ifnull 16
        14: .line 5395
            iconst_0
            istore 3 /* result */
        start local 3 // int result
        15: .line 5396
            goto 22
        end local 3 // int result
        16: .line 5399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmProvisioningThread:Landroid/media/MediaPlayer$ProvisioningThread;
            invokevirtual android.media.MediaPlayer$ProvisioningThread.join:()V
        17: .line 5400
            goto 20
      StackMap locals:
      StackMap stack: java.lang.Exception
        18: astore 4 /* e */
        start local 4 // java.lang.Exception e
        19: .line 5401
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "HandleProvisioninig: Thread.join Exception "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 4 // java.lang.Exception e
        20: .line 5403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmProvisioningThread:Landroid/media/MediaPlayer$ProvisioningThread;
            invokevirtual android.media.MediaPlayer$ProvisioningThread.status:()I
            istore 3 /* result */
        start local 3 // int result
        21: .line 5405
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mDrmProvisioningThread:Landroid/media/MediaPlayer$ProvisioningThread;
        22: .line 5408
      StackMap locals: int
      StackMap stack:
            iload 3 /* result */
            ireturn
        end local 3 // int result
        end local 2 // android.media.MediaDrm$ProvisionRequest provReq
        end local 1 // java.util.UUID uuid
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0     this  Landroid/media/MediaPlayer;
            0   23     1     uuid  Ljava/util/UUID;
            4   23     2  provReq  Landroid/media/MediaDrm$ProvisionRequest;
           15   16     3   result  I
           21   23     3   result  I
           19   20     4        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          16    17      18  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      uuid  

  private boolean resumePrepareDrm(java.util.UUID);
    descriptor: (Ljava/util/UUID;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // java.util.UUID uuid
         0: .line 5413
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "resumePrepareDrm: uuid: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* uuid */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 5416
            iconst_0
            istore 2 /* success */
        start local 2 // boolean success
         2: .line 5419
            aload 0 /* this */
            aload 1 /* uuid */
            invokevirtual android.media.MediaPlayer.prepareDrm_openSessionStep:(Ljava/util/UUID;)V
         3: .line 5421
            aload 0 /* this */
            aload 1 /* uuid */
            putfield android.media.MediaPlayer.mDrmUUID:Ljava/util/UUID;
         4: .line 5422
            aload 0 /* this */
            iconst_1
            putfield android.media.MediaPlayer.mActiveDrmScheme:Z
         5: .line 5424
            iconst_1
            istore 2 /* success */
         6: .line 5425
            goto 9
      StackMap locals: android.media.MediaPlayer java.util.UUID int
      StackMap stack: java.lang.Exception
         7: astore 3 /* e */
        start local 3 // java.lang.Exception e
         8: .line 5426
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "HandleProvisioninig: Thread run _prepareDrm resume failed with "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 3 // java.lang.Exception e
         9: .line 5430
      StackMap locals:
      StackMap stack:
            iload 2 /* success */
            ireturn
        end local 2 // boolean success
        end local 1 // java.util.UUID uuid
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Landroid/media/MediaPlayer;
            0   10     1     uuid  Ljava/util/UUID;
            2   10     2  success  Z
            8    9     3        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     6       7  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      uuid  

  private void resetDrmState();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 5435
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 5436
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "resetDrmState:  mDrmInfo="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 5437
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmInfo:Landroid/media/MediaPlayer$DrmInfo;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         3: .line 5438
            ldc " mDrmProvisioningThread="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmProvisioningThread:Landroid/media/MediaPlayer$ProvisioningThread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         4: .line 5439
            ldc " mPrepareDrmInProgress="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.media.MediaPlayer.mPrepareDrmInProgress:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
         5: .line 5440
            ldc " mActiveDrmScheme="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.media.MediaPlayer.mActiveDrmScheme:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 5436
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         7: .line 5442
            aload 0 /* this */
            iconst_0
            putfield android.media.MediaPlayer.mDrmInfoResolved:Z
         8: .line 5443
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mDrmInfo:Landroid/media/MediaPlayer$DrmInfo;
         9: .line 5445
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmProvisioningThread:Landroid/media/MediaPlayer$ProvisioningThread;
            ifnull 15
        10: .line 5448
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmProvisioningThread:Landroid/media/MediaPlayer$ProvisioningThread;
            invokevirtual android.media.MediaPlayer$ProvisioningThread.join:()V
        11: .line 5449
            goto 14
        12: .line 5450
      StackMap locals: android.media.MediaPlayer java.lang.Object
      StackMap stack: java.lang.InterruptedException
            astore 2 /* e */
        start local 2 // java.lang.InterruptedException e
        13: .line 5451
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "resetDrmState: ProvThread.join Exception "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 2 // java.lang.InterruptedException e
        14: .line 5453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mDrmProvisioningThread:Landroid/media/MediaPlayer$ProvisioningThread;
        15: .line 5456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.media.MediaPlayer.mPrepareDrmInProgress:Z
        16: .line 5457
            aload 0 /* this */
            iconst_0
            putfield android.media.MediaPlayer.mActiveDrmScheme:Z
        17: .line 5459
            aload 0 /* this */
            invokevirtual android.media.MediaPlayer.cleanDrmObj:()V
        18: .line 5435
            aload 1
            monitorexit
        19: goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: aload 1
            monitorexit
        21: athrow
        22: .line 5461
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   23     0  this  Landroid/media/MediaPlayer;
           13   14     2     e  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
          10    11      12  Class java.lang.InterruptedException
           1    19      20  any
          20    21      20  any

  private void cleanDrmObj();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer this
         0: .line 5466
            ldc "MediaPlayer"
            new java.lang.StringBuilder
            dup
            ldc "cleanDrmObj: mDrmObj="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " mDrmSessionId="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmSessionId:[B
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 5468
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmSessionId:[B
            ifnull 4
         2: .line 5469
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmSessionId:[B
            invokevirtual android.media.MediaDrm.closeSession:([B)V
         3: .line 5470
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mDrmSessionId:[B
         4: .line 5472
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
            ifnull 7
         5: .line 5473
            aload 0 /* this */
            getfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
            invokevirtual android.media.MediaDrm.release:()V
         6: .line 5474
            aload 0 /* this */
            aconst_null
            putfield android.media.MediaPlayer.mDrmObj:Landroid/media/MediaDrm;
         7: .line 5476
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/media/MediaPlayer;

  private static final byte[] getByteArrayFromUUID(java.util.UUID);
    descriptor: (Ljava/util/UUID;)[B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=7, locals=7, args_size=1
        start local 0 // java.util.UUID uuid
         0: .line 5479
            aload 0 /* uuid */
            invokevirtual java.util.UUID.getMostSignificantBits:()J
            lstore 1 /* msb */
        start local 1 // long msb
         1: .line 5480
            aload 0 /* uuid */
            invokevirtual java.util.UUID.getLeastSignificantBits:()J
            lstore 3 /* lsb */
        start local 3 // long lsb
         2: .line 5482
            bipush 16
            newarray 8
            astore 5 /* uuidBytes */
        start local 5 // byte[] uuidBytes
         3: .line 5483
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 8
         5: .line 5484
      StackMap locals: java.util.UUID long long byte[] int
      StackMap stack:
            aload 5 /* uuidBytes */
            iload 6 /* i */
            lload 1 /* msb */
            bipush 8
            bipush 7
            iload 6 /* i */
            isub
            imul
            lushr
            l2i
            i2b
            bastore
         6: .line 5485
            aload 5 /* uuidBytes */
            bipush 8
            iload 6 /* i */
            iadd
            lload 3 /* lsb */
            bipush 8
            bipush 7
            iload 6 /* i */
            isub
            imul
            lushr
            l2i
            i2b
            bastore
         7: .line 5483
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* i */
            bipush 8
            if_icmplt 5
        end local 6 // int i
         9: .line 5488
            aload 5 /* uuidBytes */
            areturn
        end local 5 // byte[] uuidBytes
        end local 3 // long lsb
        end local 1 // long msb
        end local 0 // java.util.UUID uuid
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       uuid  Ljava/util/UUID;
            1   10     1        msb  J
            2   10     3        lsb  J
            3   10     5  uuidBytes  [B
            4    9     6          i  I
    MethodParameters:
      Name  Flags
      uuid  

  private boolean isVideoScalingModeSupported(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer this
        start local 1 // int mode
         0: .line 5497
            iload 1 /* mode */
            iconst_1
            if_icmpeq 3
         1: .line 5498
            iload 1 /* mode */
            iconst_2
            if_icmpeq 3
         2: .line 5497
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // int mode
        end local 0 // android.media.MediaPlayer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/media/MediaPlayer;
            0    4     1  mode  I
    MethodParameters:
      Name  Flags
      mode  
}
SourceFile: "MediaPlayer.java"
NestMembers:
  android.media.MediaPlayer$1  android.media.MediaPlayer$2  android.media.MediaPlayer$3  android.media.MediaPlayer$4  android.media.MediaPlayer$4$1  android.media.MediaPlayer$5  android.media.MediaPlayer$6  android.media.MediaPlayer$7  android.media.MediaPlayer$DrmInfo  android.media.MediaPlayer$EventHandler  android.media.MediaPlayer$EventHandler$1  android.media.MediaPlayer$EventHandler$2  android.media.MediaPlayer$MetricsConstants  android.media.MediaPlayer$NoDrmSchemeException  android.media.MediaPlayer$OnBufferingUpdateListener  android.media.MediaPlayer$OnCompletionListener  android.media.MediaPlayer$OnDrmConfigHelper  android.media.MediaPlayer$OnDrmInfoHandlerDelegate  android.media.MediaPlayer$OnDrmInfoHandlerDelegate$1  android.media.MediaPlayer$OnDrmInfoListener  android.media.MediaPlayer$OnDrmPreparedHandlerDelegate  android.media.MediaPlayer$OnDrmPreparedHandlerDelegate$1  android.media.MediaPlayer$OnDrmPreparedListener  android.media.MediaPlayer$OnErrorListener  android.media.MediaPlayer$OnInfoListener  android.media.MediaPlayer$OnMediaTimeDiscontinuityListener  android.media.MediaPlayer$OnPreparedListener  android.media.MediaPlayer$OnSeekCompleteListener  android.media.MediaPlayer$OnSubtitleDataListener  android.media.MediaPlayer$OnTimedMetaDataAvailableListener  android.media.MediaPlayer$OnTimedTextListener  android.media.MediaPlayer$OnVideoSizeChangedListener  android.media.MediaPlayer$PlaybackRateAudioMode  android.media.MediaPlayer$PrepareDrmStatusCode  android.media.MediaPlayer$ProvisioningNetworkErrorException  android.media.MediaPlayer$ProvisioningServerErrorException  android.media.MediaPlayer$ProvisioningThread  android.media.MediaPlayer$SeekMode  android.media.MediaPlayer$TimeProvider  android.media.MediaPlayer$TimeProvider$EventHandler  android.media.MediaPlayer$TrackInfo  android.media.MediaPlayer$TrackInfo$1  android.media.MediaPlayer$TrackInfo$TrackType
InnerClasses:
  public Builder = android.media.AudioAttributes$Builder of android.media.AudioAttributes
  public abstract OnRoutingChangedListener = android.media.AudioRouting$OnRoutingChangedListener of android.media.AudioRouting
  public final KeyRequest = android.media.MediaDrm$KeyRequest of android.media.MediaDrm
  public final ProvisionRequest = android.media.MediaDrm$ProvisionRequest of android.media.MediaDrm
  android.media.MediaPlayer$1
  android.media.MediaPlayer$2
  android.media.MediaPlayer$3
  android.media.MediaPlayer$4
  android.media.MediaPlayer$5
  android.media.MediaPlayer$6
  public final DrmInfo = android.media.MediaPlayer$DrmInfo of android.media.MediaPlayer
  private EventHandler = android.media.MediaPlayer$EventHandler of android.media.MediaPlayer
  public final MetricsConstants = android.media.MediaPlayer$MetricsConstants of android.media.MediaPlayer
  public final NoDrmSchemeException = android.media.MediaPlayer$NoDrmSchemeException of android.media.MediaPlayer
  public abstract OnBufferingUpdateListener = android.media.MediaPlayer$OnBufferingUpdateListener of android.media.MediaPlayer
  public abstract OnCompletionListener = android.media.MediaPlayer$OnCompletionListener of android.media.MediaPlayer
  public abstract OnDrmConfigHelper = android.media.MediaPlayer$OnDrmConfigHelper of android.media.MediaPlayer
  private OnDrmInfoHandlerDelegate = android.media.MediaPlayer$OnDrmInfoHandlerDelegate of android.media.MediaPlayer
  public abstract OnDrmInfoListener = android.media.MediaPlayer$OnDrmInfoListener of android.media.MediaPlayer
  private OnDrmPreparedHandlerDelegate = android.media.MediaPlayer$OnDrmPreparedHandlerDelegate of android.media.MediaPlayer
  public abstract OnDrmPreparedListener = android.media.MediaPlayer$OnDrmPreparedListener 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 OnMediaTimeDiscontinuityListener = android.media.MediaPlayer$OnMediaTimeDiscontinuityListener of android.media.MediaPlayer
  public abstract OnPreparedListener = android.media.MediaPlayer$OnPreparedListener of android.media.MediaPlayer
  public abstract OnSeekCompleteListener = android.media.MediaPlayer$OnSeekCompleteListener of android.media.MediaPlayer
  public abstract OnSubtitleDataListener = android.media.MediaPlayer$OnSubtitleDataListener of android.media.MediaPlayer
  public abstract OnTimedMetaDataAvailableListener = android.media.MediaPlayer$OnTimedMetaDataAvailableListener of android.media.MediaPlayer
  public abstract OnTimedTextListener = android.media.MediaPlayer$OnTimedTextListener of android.media.MediaPlayer
  public abstract OnVideoSizeChangedListener = android.media.MediaPlayer$OnVideoSizeChangedListener of android.media.MediaPlayer
  public abstract PlaybackRateAudioMode = android.media.MediaPlayer$PlaybackRateAudioMode of android.media.MediaPlayer
  public abstract PrepareDrmStatusCode = android.media.MediaPlayer$PrepareDrmStatusCode of android.media.MediaPlayer
  public final ProvisioningNetworkErrorException = android.media.MediaPlayer$ProvisioningNetworkErrorException of android.media.MediaPlayer
  public final ProvisioningServerErrorException = android.media.MediaPlayer$ProvisioningServerErrorException of android.media.MediaPlayer
  private ProvisioningThread = android.media.MediaPlayer$ProvisioningThread of android.media.MediaPlayer
  public abstract SeekMode = android.media.MediaPlayer$SeekMode of android.media.MediaPlayer
  TimeProvider = android.media.MediaPlayer$TimeProvider of android.media.MediaPlayer
  public TrackInfo = android.media.MediaPlayer$TrackInfo 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 final Configuration = android.media.VolumeShaper$Configuration of android.media.VolumeShaper
  public final Operation = android.media.VolumeShaper$Operation of android.media.VolumeShaper
  public final State = android.media.VolumeShaper$State of android.media.VolumeShaper
  public abstract Creator = android.os.Parcelable$Creator of android.os.Parcelable
  public final WakeLock = android.os.PowerManager$WakeLock of android.os.PowerManager
  public abstract Entry = java.util.Map$Entry of java.util.Map