public abstract class android.media.MediaPlayer2 extends android.media.MediaPlayerBase implements android.media.SubtitleController$Listener, android.media.AudioRouting
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: android.media.MediaPlayer2
  super_class: android.media.MediaPlayerBase
{
  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

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

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

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

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

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

  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

  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"

  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_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

  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_AUDIO_RENDERING_START;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

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

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

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

  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_BUFFERING_UPDATE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 704

  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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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

  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

  public static final android.media.MediaPlayer2 create();
    descriptor: ()Landroid/media/MediaPlayer2;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=0, args_size=0
         0: .line 466
            new android.media.MediaPlayer2Impl
            dup
            invokespecial android.media.MediaPlayer2Impl.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static final java.lang.String[] decodeMediaPlayer2Uri(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // java.lang.String location
         0: .line 470
            aload 0 /* location */
            invokestatic android.net.Uri.parse:(Ljava/lang/String;)Landroid/net/Uri;
            astore 1 /* uri */
        start local 1 // android.net.Uri uri
         1: .line 471
            ldc "mediaplayer2"
            aload 1 /* uri */
            invokevirtual android.net.Uri.getScheme:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 472
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* location */
            aastore
            areturn
         3: .line 475
      StackMap locals: android.net.Uri
      StackMap stack:
            aload 1 /* uri */
            ldc "uri"
            invokevirtual android.net.Uri.getQueryParameters:(Ljava/lang/String;)Ljava/util/List;
            astore 2 /* uris */
        start local 2 // java.util.List uris
         4: .line 476
            aload 2 /* uris */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 6
         5: .line 477
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* location */
            aastore
            areturn
         6: .line 480
      StackMap locals: java.util.List
      StackMap stack:
            aload 1 /* uri */
            ldc "key"
            invokevirtual android.net.Uri.getQueryParameters:(Ljava/lang/String;)Ljava/util/List;
            astore 3 /* keys */
        start local 3 // java.util.List keys
         7: .line 481
            aload 1 /* uri */
            ldc "value"
            invokevirtual android.net.Uri.getQueryParameters:(Ljava/lang/String;)Ljava/util/List;
            astore 4 /* values */
        start local 4 // java.util.List values
         8: .line 482
            aload 3 /* keys */
            invokeinterface java.util.List.size:()I
            aload 4 /* values */
            invokeinterface java.util.List.size:()I
            if_icmpeq 10
         9: .line 483
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* uris */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            aastore
            areturn
        10: .line 486
      StackMap locals: java.util.List java.util.List
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* ls */
        start local 5 // java.util.List ls
        11: .line 487
            aload 5 /* ls */
            aload 2 /* uris */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 488
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        13: goto 17
        14: .line 489
      StackMap locals: java.util.List int
      StackMap stack:
            aload 5 /* ls */
            aload 3 /* keys */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 490
            aload 5 /* ls */
            aload 4 /* values */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 488
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 6 /* i */
            aload 3 /* keys */
            invokeinterface java.util.List.size:()I
            if_icmplt 14
        end local 6 // int i
        18: .line 493
            aload 5 /* ls */
            aload 5 /* ls */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 5 // java.util.List ls
        end local 4 // java.util.List values
        end local 3 // java.util.List keys
        end local 2 // java.util.List uris
        end local 1 // android.net.Uri uri
        end local 0 // java.lang.String location
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0  location  Ljava/lang/String;
            1   19     1       uri  Landroid/net/Uri;
            4   19     2      uris  Ljava/util/List<Ljava/lang/String;>;
            7   19     3      keys  Ljava/util/List<Ljava/lang/String;>;
            8   19     4    values  Ljava/util/List<Ljava/lang/String;>;
           11   19     5        ls  Ljava/util/List<Ljava/lang/String;>;
           13   18     6         i  I
    MethodParameters:
          Name  Flags
      location  

  private static final java.lang.String encodeMediaPlayer2Uri(java.lang.String, java.lang.String[], java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.lang.String uri
        start local 1 // java.lang.String[] keys
        start local 2 // java.lang.String[] values
         0: .line 497
            new android.net.Uri$Builder
            dup
            invokespecial android.net.Uri$Builder.<init>:()V
            astore 3 /* builder */
        start local 3 // android.net.Uri$Builder builder
         1: .line 498
            aload 3 /* builder */
            ldc "mediaplayer2"
            invokevirtual android.net.Uri$Builder.scheme:(Ljava/lang/String;)Landroid/net/Uri$Builder;
            ldc "/"
            invokevirtual android.net.Uri$Builder.path:(Ljava/lang/String;)Landroid/net/Uri$Builder;
            ldc "uri"
            aload 0 /* uri */
            invokevirtual android.net.Uri$Builder.appendQueryParameter:(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder;
            pop
         2: .line 499
            aload 1 /* keys */
            ifnull 3
            aload 2 /* values */
            ifnull 3
            aload 1 /* keys */
            arraylength
            aload 2 /* values */
            arraylength
            if_icmpeq 4
         3: .line 500
      StackMap locals: android.net.Uri$Builder
      StackMap stack:
            aload 3 /* builder */
            invokevirtual android.net.Uri$Builder.build:()Landroid/net/Uri;
            invokevirtual android.net.Uri.toString:()Ljava/lang/String;
            areturn
         4: .line 502
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 10
         6: .line 503
      StackMap locals: int
      StackMap stack:
            aload 3 /* builder */
         7: .line 504
            ldc "key"
            aload 1 /* keys */
            iload 4 /* i */
            aaload
            invokevirtual android.net.Uri$Builder.appendQueryParameter:(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder;
         8: .line 505
            ldc "value"
            aload 2 /* values */
            iload 4 /* i */
            aaload
            invokevirtual android.net.Uri$Builder.appendQueryParameter:(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder;
            pop
         9: .line 502
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            aload 1 /* keys */
            arraylength
            if_icmplt 6
        end local 4 // int i
        11: .line 507
            aload 3 /* builder */
            invokevirtual android.net.Uri$Builder.build:()Landroid/net/Uri;
            invokevirtual android.net.Uri.toString:()Ljava/lang/String;
            areturn
        end local 3 // android.net.Uri$Builder builder
        end local 2 // java.lang.String[] values
        end local 1 // java.lang.String[] keys
        end local 0 // java.lang.String uri
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0      uri  Ljava/lang/String;
            0   12     1     keys  [Ljava/lang/String;
            0   12     2   values  [Ljava/lang/String;
            1   12     3  builder  Landroid/net/Uri$Builder;
            5   11     4        i  I
    MethodParameters:
        Name  Flags
      uri     
      keys    
      values  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer2 this
         0: .line 514
            aload 0 /* this */
            invokespecial android.media.MediaPlayerBase.<init>:()V
            return
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaPlayer2;

  public abstract void close();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void play();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void prepare();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void pause();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void skipToNext();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void seekTo(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // long msec
         0: .line 589
            aload 0 /* this */
            lload 1 /* msec */
            iconst_0
            invokevirtual android.media.MediaPlayer2.seekTo:(JI)V
         1: .line 590
            return
        end local 1 // long msec
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaPlayer2;
            0    2     1  msec  J
    MethodParameters:
      Name  Flags
      msec  

  public abstract long getCurrentPosition();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract long getDuration();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract long getBufferedPosition();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int getPlayerState();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int getBufferingState();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void setAudioAttributes(android.media.AudioAttributes);
    descriptor: (Landroid/media/AudioAttributes;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
            Name  Flags
      attributes  

  public abstract android.media.AudioAttributes getAudioAttributes();
    descriptor: ()Landroid/media/AudioAttributes;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void setDataSource(android.media.DataSourceDesc);
    descriptor: (Landroid/media/DataSourceDesc;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      dsd   

  public abstract void setNextDataSource(android.media.DataSourceDesc);
    descriptor: (Landroid/media/DataSourceDesc;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      dsd   

  public abstract void setNextDataSources(java.util.List<android.media.DataSourceDesc>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/util/List<Landroid/media/DataSourceDesc;>;)V
    MethodParameters:
      Name  Flags
      dsds  

  public abstract android.media.DataSourceDesc getCurrentDataSource();
    descriptor: ()Landroid/media/DataSourceDesc;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void loopCurrent(boolean);
    descriptor: (Z)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      loop  

  public abstract void setPlaybackSpeed(float);
    descriptor: (F)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      speed  

  public float getPlaybackSpeed();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer2 this
         0: .line 720
            fconst_1
            freturn
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaPlayer2;

  public boolean isReversePlaybackSupported();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer2 this
         0: .line 731
            iconst_0
            ireturn
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaPlayer2;

  public abstract void setPlayerVolume(float);
    descriptor: (F)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      volume  

  public abstract float getPlayerVolume();
    descriptor: ()F
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public float getMaxPlayerVolume();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer2 this
         0: .line 760
            fconst_1
            freturn
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaPlayer2;

  public abstract void registerPlayerEventCallback(java.util.concurrent.Executor, android.media.MediaPlayerBase$PlayerEventCallback);
    descriptor: (Ljava/util/concurrent/Executor;Landroid/media/MediaPlayerBase$PlayerEventCallback;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      e     
      cb    

  public abstract void unregisterPlayerEventCallback(android.media.MediaPlayerBase$PlayerEventCallback);
    descriptor: (Landroid/media/MediaPlayerBase$PlayerEventCallback;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      cb    

  public android.os.Parcel newRequest();
    descriptor: ()Landroid/os/Parcel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer2 this
         0: .line 793
            aconst_null
            areturn
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaPlayer2;

  public void invoke(android.os.Parcel, android.os.Parcel);
    descriptor: (Landroid/os/Parcel;Landroid/os/Parcel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // android.os.Parcel request
        start local 2 // android.os.Parcel reply
         0: .line 810
            return
        end local 2 // android.os.Parcel reply
        end local 1 // android.os.Parcel request
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Landroid/media/MediaPlayer2;
            0    1     1  request  Landroid/os/Parcel;
            0    1     2    reply  Landroid/os/Parcel;
    MethodParameters:
         Name  Flags
      request  
      reply    

  public void notifyWhenCommandLabelReached(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // java.lang.Object label
         0: .line 824
            return
        end local 1 // java.lang.Object label
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/media/MediaPlayer2;
            0    1     1  label  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      label  

  public abstract void setDisplay(android.view.SurfaceHolder);
    descriptor: (Landroid/view/SurfaceHolder;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      sh    

  public abstract void setSurface(android.view.Surface);
    descriptor: (Landroid/view/Surface;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      surface  

  public void setVideoScalingMode(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // int mode
         0: .line 906
            return
        end local 1 // int mode
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaPlayer2;
            0    1     1  mode  I
    MethodParameters:
      Name  Flags
      mode  

  public abstract void clearPendingCommands();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer2 this
         0: .line 921
            return
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaPlayer2;

  public abstract boolean setPreferredDevice(android.media.AudioDeviceInfo);
    descriptor: (Landroid/media/AudioDeviceInfo;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
            Name  Flags
      deviceInfo  

  public abstract android.media.AudioDeviceInfo getPreferredDevice();
    descriptor: ()Landroid/media/AudioDeviceInfo;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract android.media.AudioDeviceInfo getRoutedDevice();
    descriptor: ()Landroid/media/AudioDeviceInfo;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void addOnRoutingChangedListener(android.media.AudioRouting$OnRoutingChangedListener, android.os.Handler);
    descriptor: (Landroid/media/AudioRouting$OnRoutingChangedListener;Landroid/os/Handler;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      listener  
      handler   

  public abstract void removeOnRoutingChangedListener(android.media.AudioRouting$OnRoutingChangedListener);
    descriptor: (Landroid/media/AudioRouting$OnRoutingChangedListener;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      listener  

  public abstract void setWakeMode(android.content.Context, int);
    descriptor: (Landroid/content/Context;I)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      context  
      mode     

  public abstract void setScreenOnWhilePlaying(boolean);
    descriptor: (Z)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      screenOn  

  public abstract int getVideoWidth();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int getVideoHeight();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract android.os.PersistableBundle getMetrics();
    descriptor: ()Landroid/os/PersistableBundle;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean isPlaying();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int getMediaPlayer2State();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public android.media.BufferingParams getBufferingParams();
    descriptor: ()Landroid/media/BufferingParams;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer2 this
         0: .line 1119
            new android.media.BufferingParams$Builder
            dup
            invokespecial android.media.BufferingParams$Builder.<init>:()V
            invokevirtual android.media.BufferingParams$Builder.build:()Landroid/media/BufferingParams;
            areturn
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaPlayer2;

  public void setBufferingParams(android.media.BufferingParams);
    descriptor: (Landroid/media/BufferingParams;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // android.media.BufferingParams params
         0: .line 1137
            return
        end local 1 // android.media.BufferingParams params
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/media/MediaPlayer2;
            0    1     1  params  Landroid/media/BufferingParams;
    MethodParameters:
        Name  Flags
      params  

  public android.media.PlaybackParams easyPlaybackParams(float, int);
    descriptor: (FI)Landroid/media/PlaybackParams;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // float rate
        start local 2 // int audioMode
         0: .line 1204
            new android.media.PlaybackParams
            dup
            invokespecial android.media.PlaybackParams.<init>:()V
            areturn
        end local 2 // int audioMode
        end local 1 // float rate
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Landroid/media/MediaPlayer2;
            0    1     1       rate  F
            0    1     2  audioMode  I
    MethodParameters:
           Name  Flags
      rate       
      audioMode  

  public abstract void setPlaybackParams(android.media.PlaybackParams);
    descriptor: (Landroid/media/PlaybackParams;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      params  

  public abstract android.media.PlaybackParams getPlaybackParams();
    descriptor: ()Landroid/media/PlaybackParams;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void setSyncParams(android.media.SyncParams);
    descriptor: (Landroid/media/SyncParams;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      params  

  public abstract android.media.SyncParams getSyncParams();
    descriptor: ()Landroid/media/SyncParams;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void seekTo(long, int);
    descriptor: (JI)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      msec  
      mode  

  public abstract android.media.MediaTimestamp getTimestamp();
    descriptor: ()Landroid/media/MediaTimestamp;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public android.media.Metadata getMetadata(boolean, boolean);
    descriptor: (ZZ)Landroid/media/Metadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // boolean update_only
        start local 2 // boolean apply_filter
         0: .line 1354
            aconst_null
            areturn
        end local 2 // boolean apply_filter
        end local 1 // boolean update_only
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Landroid/media/MediaPlayer2;
            0    1     1   update_only  Z
            0    1     2  apply_filter  Z
    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=1, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // java.util.Set allow
        start local 2 // java.util.Set block
         0: .line 1377
            iconst_0
            ireturn
        end local 2 // java.util.Set block
        end local 1 // java.util.Set allow
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/media/MediaPlayer2;
            0    1     1  allow  Ljava/util/Set<Ljava/lang/Integer;>;
            0    1     2  block  Ljava/util/Set<Ljava/lang/Integer;>;
    Signature: (Ljava/util/Set<Ljava/lang/Integer;>;Ljava/util/Set<Ljava/lang/Integer;>;)I
    MethodParameters:
       Name  Flags
      allow  
      block  

  public abstract void reset();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

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

  public boolean isLooping();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer2 this
         0: .line 1406
            iconst_0
            ireturn
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaPlayer2;

  public abstract void setAudioSessionId(int);
    descriptor: (I)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      sessionId  

  public abstract int getAudioSessionId();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void attachAuxEffect(int);
    descriptor: (I)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      effectId  

  public abstract void setAuxEffectSendLevel(float);
    descriptor: (F)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      level  

  public abstract java.util.List<android.media.MediaPlayer2$TrackInfo> getTrackInfo();
    descriptor: ()Ljava/util/List;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/List<Landroid/media/MediaPlayer2$TrackInfo;>;

  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=0, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // android.media.SubtitleController controller
        start local 2 // android.media.SubtitleController$Anchor anchor
         0: .line 1547
            return
        end local 2 // android.media.SubtitleController$Anchor anchor
        end local 1 // android.media.SubtitleController controller
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Landroid/media/MediaPlayer2;
            0    1     1  controller  Landroid/media/SubtitleController;
            0    1     2      anchor  Landroid/media/SubtitleController$Anchor;
    MethodParameters:
            Name  Flags
      controller  
      anchor      

  public void onSubtitleTrackSelected(android.media.SubtitleTrack);
    descriptor: (Landroid/media/SubtitleTrack;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // android.media.SubtitleTrack track
         0: .line 1551
            return
        end local 1 // android.media.SubtitleTrack track
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/media/MediaPlayer2;
            0    1     1  track  Landroid/media/SubtitleTrack;
    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=0, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // java.io.InputStream is
        start local 2 // android.media.MediaFormat format
         0: .line 1554
            return
        end local 2 // android.media.MediaFormat format
        end local 1 // java.io.InputStream is
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/media/MediaPlayer2;
            0    1     1      is  Ljava/io/InputStream;
            0    1     2  format  Landroid/media/MediaFormat;
    MethodParameters:
        Name  Flags
      is      
      format  

  public void addTimedTextSource(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // java.lang.String path
        start local 2 // java.lang.String mimeType
         0: .line 1573
            return
        end local 2 // java.lang.String mimeType
        end local 1 // java.lang.String path
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Landroid/media/MediaPlayer2;
            0    1     1      path  Ljava/lang/String;
            0    1     2  mimeType  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    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=0, locals=4, args_size=4
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // android.content.Context context
        start local 2 // android.net.Uri uri
        start local 3 // java.lang.String mimeType
         0: .line 1591
            return
        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.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Landroid/media/MediaPlayer2;
            0    1     1   context  Landroid/content/Context;
            0    1     2       uri  Landroid/net/Uri;
            0    1     3  mimeType  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    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=0, locals=3, args_size=3
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // java.lang.String mimeType
         0: .line 1610
            return
        end local 2 // java.lang.String mimeType
        end local 1 // java.io.FileDescriptor fd
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Landroid/media/MediaPlayer2;
            0    1     1        fd  Ljava/io/FileDescriptor;
            0    1     2  mimeType  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      fd        
      mimeType  

  public abstract void addTimedTextSource(java.io.FileDescriptor, long, long, java.lang.String);
    descriptor: (Ljava/io/FileDescriptor;JJLjava/lang/String;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      fd      
      offset  
      length  
      mime    

  public abstract int getSelectedTrack(int);
    descriptor: (I)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      trackType  

  public abstract void selectTrack(int);
    descriptor: (I)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      index  

  public abstract void deselectTrack(int);
    descriptor: (I)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      index  

  public android.media.MediaTimeProvider getMediaTimeProvider();
    descriptor: ()Landroid/media/MediaTimeProvider;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaPlayer2 this
         0: .line 1702
            aconst_null
            areturn
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaPlayer2;

  public abstract void setMediaPlayer2EventCallback(java.util.concurrent.Executor, android.media.MediaPlayer2$MediaPlayer2EventCallback);
    descriptor: (Ljava/util/concurrent/Executor;Landroid/media/MediaPlayer2$MediaPlayer2EventCallback;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
               Name  Flags
      executor       
      eventCallback  

  public abstract void clearMediaPlayer2EventCallback();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void setOnSubtitleDataListener(android.media.MediaPlayer2$OnSubtitleDataListener);
    descriptor: (Landroid/media/MediaPlayer2$OnSubtitleDataListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.media.MediaPlayer2 this
        start local 1 // android.media.MediaPlayer2$OnSubtitleDataListener listener
         0: .line 1845
            return
        end local 1 // android.media.MediaPlayer2$OnSubtitleDataListener listener
        end local 0 // android.media.MediaPlayer2 this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Landroid/media/MediaPlayer2;
            0    1     1  listener  Landroid/media/MediaPlayer2$OnSubtitleDataListener;
    MethodParameters:
          Name  Flags
      listener  

  public abstract void setOnDrmConfigHelper(android.media.MediaPlayer2$OnDrmConfigHelper);
    descriptor: (Landroid/media/MediaPlayer2$OnDrmConfigHelper;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      listener  

  public abstract void setDrmEventCallback(java.util.concurrent.Executor, android.media.MediaPlayer2$DrmEventCallback);
    descriptor: (Ljava/util/concurrent/Executor;Landroid/media/MediaPlayer2$DrmEventCallback;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
               Name  Flags
      executor       
      eventCallback  

  public abstract void clearDrmEventCallback();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract android.media.MediaPlayer2$DrmInfo getDrmInfo();
    descriptor: ()Landroid/media/MediaPlayer2$DrmInfo;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void prepareDrm(java.util.UUID);
    descriptor: (Ljava/util/UUID;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws android.media.UnsupportedSchemeException, android.media.ResourceBusyException, android.media.MediaPlayer2$ProvisioningNetworkErrorException, android.media.MediaPlayer2$ProvisioningServerErrorException
    MethodParameters:
      Name  Flags
      uuid  

  public abstract void releaseDrm();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws android.media.MediaPlayer2$NoDrmSchemeException

  public abstract android.media.MediaDrm$KeyRequest getDrmKeyRequest(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: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws android.media.MediaPlayer2$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 abstract byte[] provideDrmKeyResponse(byte[], byte[]);
    descriptor: ([B[B)[B
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws android.media.MediaPlayer2$NoDrmSchemeException, android.media.DeniedByServerException
    MethodParameters:
          Name  Flags
      keySetId  
      response  

  public abstract void restoreDrmKeys(byte[]);
    descriptor: ([B)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws android.media.MediaPlayer2$NoDrmSchemeException
    MethodParameters:
          Name  Flags
      keySetId  

  public abstract java.lang.String getDrmPropertyString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws android.media.MediaPlayer2$NoDrmSchemeException
    MethodParameters:
              Name  Flags
      propertyName  

  public abstract void setDrmPropertyString(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws android.media.MediaPlayer2$NoDrmSchemeException
    MethodParameters:
              Name  Flags
      propertyName  
      value         
}
SourceFile: "MediaPlayer2.java"
NestMembers:
  android.media.MediaPlayer2$CallCompleted  android.media.MediaPlayer2$CallStatus  android.media.MediaPlayer2$DrmEventCallback  android.media.MediaPlayer2$DrmInfo  android.media.MediaPlayer2$MediaError  android.media.MediaPlayer2$MediaInfo  android.media.MediaPlayer2$MediaPlayer2EventCallback  android.media.MediaPlayer2$MediaPlayer2State  android.media.MediaPlayer2$MetricsConstants  android.media.MediaPlayer2$NoDrmSchemeException  android.media.MediaPlayer2$OnDrmConfigHelper  android.media.MediaPlayer2$OnSubtitleDataListener  android.media.MediaPlayer2$PlaybackRateAudioMode  android.media.MediaPlayer2$PrepareDrmStatusCode  android.media.MediaPlayer2$ProvisioningNetworkErrorException  android.media.MediaPlayer2$ProvisioningServerErrorException  android.media.MediaPlayer2$SeekMode  android.media.MediaPlayer2$TrackInfo
InnerClasses:
  public abstract OnRoutingChangedListener = android.media.AudioRouting$OnRoutingChangedListener of android.media.AudioRouting
  public Builder = android.media.BufferingParams$Builder of android.media.BufferingParams
  public final KeyRequest = android.media.MediaDrm$KeyRequest of android.media.MediaDrm
  public abstract CallCompleted = android.media.MediaPlayer2$CallCompleted of android.media.MediaPlayer2
  public abstract CallStatus = android.media.MediaPlayer2$CallStatus of android.media.MediaPlayer2
  public abstract DrmEventCallback = android.media.MediaPlayer2$DrmEventCallback of android.media.MediaPlayer2
  public abstract DrmInfo = android.media.MediaPlayer2$DrmInfo of android.media.MediaPlayer2
  public abstract MediaError = android.media.MediaPlayer2$MediaError of android.media.MediaPlayer2
  public abstract MediaInfo = android.media.MediaPlayer2$MediaInfo of android.media.MediaPlayer2
  public abstract MediaPlayer2EventCallback = android.media.MediaPlayer2$MediaPlayer2EventCallback of android.media.MediaPlayer2
  public abstract MediaPlayer2State = android.media.MediaPlayer2$MediaPlayer2State of android.media.MediaPlayer2
  public final MetricsConstants = android.media.MediaPlayer2$MetricsConstants of android.media.MediaPlayer2
  public abstract NoDrmSchemeException = android.media.MediaPlayer2$NoDrmSchemeException of android.media.MediaPlayer2
  public abstract OnDrmConfigHelper = android.media.MediaPlayer2$OnDrmConfigHelper of android.media.MediaPlayer2
  public abstract OnSubtitleDataListener = android.media.MediaPlayer2$OnSubtitleDataListener of android.media.MediaPlayer2
  public abstract PlaybackRateAudioMode = android.media.MediaPlayer2$PlaybackRateAudioMode of android.media.MediaPlayer2
  public abstract PrepareDrmStatusCode = android.media.MediaPlayer2$PrepareDrmStatusCode of android.media.MediaPlayer2
  public abstract ProvisioningNetworkErrorException = android.media.MediaPlayer2$ProvisioningNetworkErrorException of android.media.MediaPlayer2
  public abstract ProvisioningServerErrorException = android.media.MediaPlayer2$ProvisioningServerErrorException of android.media.MediaPlayer2
  public abstract SeekMode = android.media.MediaPlayer2$SeekMode of android.media.MediaPlayer2
  public abstract TrackInfo = android.media.MediaPlayer2$TrackInfo of android.media.MediaPlayer2
  public abstract PlayerEventCallback = android.media.MediaPlayerBase$PlayerEventCallback of android.media.MediaPlayerBase
  public abstract Anchor = android.media.SubtitleController$Anchor of android.media.SubtitleController
  public abstract Listener = android.media.SubtitleController$Listener of android.media.SubtitleController
  public final Builder = android.net.Uri$Builder of android.net.Uri