public class android.media.SoundPool extends android.media.PlayerBase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.media.SoundPool
  super_class: android.media.PlayerBase
{
  private static final int SAMPLE_LOADED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

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

  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

  private android.media.SoundPool$OnLoadCompleteListener mOnLoadCompleteListener;
    descriptor: Landroid/media/SoundPool$OnLoadCompleteListener;
    flags: (0x0002) ACC_PRIVATE

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

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

  private final android.media.AudioAttributes mAttributes;
    descriptor: Landroid/media/AudioAttributes;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 115
            ldc "soundpool"
            invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
         1: .line 123
            ldc "SoundPool"
            iconst_3
            invokestatic android.util.Log.isLoggable:(Ljava/lang/String;I)Z
            putstatic android.media.SoundPool.DEBUG:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(int, int, int);
    descriptor: (III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.media.SoundPool this
        start local 1 // int maxStreams
        start local 2 // int streamType
        start local 3 // int srcQuality
         0: .line 150
            aload 0 /* this */
            iload 1 /* maxStreams */
         1: .line 151
            new android.media.AudioAttributes$Builder
            dup
            invokespecial android.media.AudioAttributes$Builder.<init>:()V
            iload 2 /* streamType */
            invokevirtual android.media.AudioAttributes$Builder.setInternalLegacyStreamType:(I)Landroid/media/AudioAttributes$Builder;
            invokevirtual android.media.AudioAttributes$Builder.build:()Landroid/media/AudioAttributes;
            invokespecial android.media.SoundPool.<init>:(ILandroid/media/AudioAttributes;)V
         2: .line 152
            iload 2 /* streamType */
            ldc "SoundPool"
            ldc "SoundPool()"
            invokestatic android.media.PlayerBase.deprecateStreamTypeForPlayback:(ILjava/lang/String;Ljava/lang/String;)V
         3: .line 153
            return
        end local 3 // int srcQuality
        end local 2 // int streamType
        end local 1 // int maxStreams
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Landroid/media/SoundPool;
            0    4     1  maxStreams  I
            0    4     2  streamType  I
            0    4     3  srcQuality  I
    MethodParameters:
            Name  Flags
      maxStreams  
      streamType  
      srcQuality  

  private void <init>(int, android.media.AudioAttributes);
    descriptor: (ILandroid/media/AudioAttributes;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.media.SoundPool this
        start local 1 // int maxStreams
        start local 2 // android.media.AudioAttributes attributes
         0: .line 156
            aload 0 /* this */
            aload 2 /* attributes */
            iconst_3
            invokespecial android.media.PlayerBase.<init>:(Landroid/media/AudioAttributes;I)V
         1: .line 159
            aload 0 /* this */
            new java.lang.ref.WeakReference
            dup
            aload 0 /* this */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            iload 1 /* maxStreams */
            aload 2 /* attributes */
            invokevirtual android.media.SoundPool.native_setup:(Ljava/lang/Object;ILjava/lang/Object;)I
            ifeq 3
         2: .line 160
            new java.lang.RuntimeException
            dup
            ldc "Native setup failed"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 162
      StackMap locals: android.media.SoundPool int android.media.AudioAttributes
      StackMap stack:
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.media.SoundPool.mLock:Ljava/lang/Object;
         4: .line 163
            aload 0 /* this */
            aload 2 /* attributes */
            putfield android.media.SoundPool.mAttributes:Landroid/media/AudioAttributes;
         5: .line 165
            aload 0 /* this */
            invokevirtual android.media.SoundPool.baseRegisterPlayer:()V
         6: .line 166
            return
        end local 2 // android.media.AudioAttributes attributes
        end local 1 // int maxStreams
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Landroid/media/SoundPool;
            0    7     1  maxStreams  I
            0    7     2  attributes  Landroid/media/AudioAttributes;
    MethodParameters:
            Name  Flags
      maxStreams  
      attributes  

  public final void release();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.SoundPool this
         0: .line 176
            aload 0 /* this */
            invokevirtual android.media.SoundPool.baseRelease:()V
         1: .line 177
            aload 0 /* this */
            invokevirtual android.media.SoundPool.native_release:()V
         2: .line 178
            return
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/media/SoundPool;

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

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.SoundPool this
         0: .line 182
            aload 0 /* this */
            invokevirtual android.media.SoundPool.release:()V
            return
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/SoundPool;

  public int load(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // android.media.SoundPool this
        start local 1 // java.lang.String path
        start local 2 // int priority
         0: .line 193
            iconst_0
            istore 3 /* id */
        start local 3 // int id
         1: .line 195
            new java.io.File
            dup
            aload 1 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 4 /* f */
        start local 4 // java.io.File f
         2: .line 196
            aload 4 /* f */
         3: .line 197
            ldc 268435456
         4: .line 196
            invokestatic android.os.ParcelFileDescriptor.open:(Ljava/io/File;I)Landroid/os/ParcelFileDescriptor;
            astore 5 /* fd */
        start local 5 // android.os.ParcelFileDescriptor fd
         5: .line 198
            aload 5 /* fd */
            ifnull 11
         6: .line 199
            aload 0 /* this */
            aload 5 /* fd */
            invokevirtual android.os.ParcelFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
            lconst_0
            aload 4 /* f */
            invokevirtual java.io.File.length:()J
            iload 2 /* priority */
            invokevirtual android.media.SoundPool._load:(Ljava/io/FileDescriptor;JJI)I
            istore 3 /* id */
         7: .line 200
            aload 5 /* fd */
            invokevirtual android.os.ParcelFileDescriptor.close:()V
        end local 5 // android.os.ParcelFileDescriptor fd
        end local 4 // java.io.File f
         8: .line 202
            goto 11
      StackMap locals: android.media.SoundPool java.lang.String int int
      StackMap stack: java.io.IOException
         9: pop
        10: .line 203
            ldc "SoundPool"
            new java.lang.StringBuilder
            dup
            ldc "error loading "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        11: .line 205
      StackMap locals:
      StackMap stack:
            iload 3 /* id */
            ireturn
        end local 3 // int id
        end local 2 // int priority
        end local 1 // java.lang.String path
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Landroid/media/SoundPool;
            0   12     1      path  Ljava/lang/String;
            0   12     2  priority  I
            1   12     3        id  I
            2    8     4         f  Ljava/io/File;
            5    8     5        fd  Landroid/os/ParcelFileDescriptor;
      Exception table:
        from    to  target  type
           1     8       9  Class java.io.IOException
    MethodParameters:
          Name  Flags
      path      
      priority  

  public int load(android.content.Context, int, int);
    descriptor: (Landroid/content/Context;II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // android.media.SoundPool this
        start local 1 // android.content.Context context
        start local 2 // int resId
        start local 3 // int priority
         0: .line 224
            aload 1 /* context */
            invokevirtual android.content.Context.getResources:()Landroid/content/res/Resources;
            iload 2 /* 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 225
            iconst_0
            istore 5 /* id */
        start local 5 // int id
         2: .line 226
            aload 4 /* afd */
            ifnull 7
         3: .line 227
            aload 0 /* this */
            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
            iload 3 /* priority */
            invokevirtual android.media.SoundPool._load:(Ljava/io/FileDescriptor;JJI)I
            istore 5 /* id */
         4: .line 229
            aload 4 /* afd */
            invokevirtual android.content.res.AssetFileDescriptor.close:()V
         5: .line 230
            goto 7
      StackMap locals: android.media.SoundPool android.content.Context int int android.content.res.AssetFileDescriptor int
      StackMap stack: java.io.IOException
         6: pop
         7: .line 234
      StackMap locals:
      StackMap stack:
            iload 5 /* id */
            ireturn
        end local 5 // int id
        end local 4 // android.content.res.AssetFileDescriptor afd
        end local 3 // int priority
        end local 2 // int resId
        end local 1 // android.content.Context context
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Landroid/media/SoundPool;
            0    8     1   context  Landroid/content/Context;
            0    8     2     resId  I
            0    8     3  priority  I
            1    8     4       afd  Landroid/content/res/AssetFileDescriptor;
            2    8     5        id  I
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
    MethodParameters:
          Name  Flags
      context   
      resId     
      priority  

  public int load(android.content.res.AssetFileDescriptor, int);
    descriptor: (Landroid/content/res/AssetFileDescriptor;I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // android.media.SoundPool this
        start local 1 // android.content.res.AssetFileDescriptor afd
        start local 2 // int priority
         0: .line 246
            aload 1 /* afd */
            ifnull 5
         1: .line 247
            aload 1 /* afd */
            invokevirtual android.content.res.AssetFileDescriptor.getLength:()J
            lstore 3 /* len */
        start local 3 // long len
         2: .line 248
            lload 3 /* len */
            lconst_0
            lcmp
            ifge 4
         3: .line 249
            new android.util.AndroidRuntimeException
            dup
            ldc "no length for fd"
            invokespecial android.util.AndroidRuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 251
      StackMap locals: long
      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
            lload 3 /* len */
            iload 2 /* priority */
            invokevirtual android.media.SoundPool._load:(Ljava/io/FileDescriptor;JJI)I
            ireturn
        end local 3 // long len
         5: .line 253
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // int priority
        end local 1 // android.content.res.AssetFileDescriptor afd
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Landroid/media/SoundPool;
            0    6     1       afd  Landroid/content/res/AssetFileDescriptor;
            0    6     2  priority  I
            2    5     3       len  J
    MethodParameters:
          Name  Flags
      afd       
      priority  

  public int load(java.io.FileDescriptor, long, long, int);
    descriptor: (Ljava/io/FileDescriptor;JJI)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=5
        start local 0 // android.media.SoundPool this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // long offset
        start local 4 // long length
        start local 6 // int priority
         0: .line 272
            aload 0 /* this */
            aload 1 /* fd */
            lload 2 /* offset */
            lload 4 /* length */
            iload 6 /* priority */
            invokevirtual android.media.SoundPool._load:(Ljava/io/FileDescriptor;JJI)I
            ireturn
        end local 6 // int priority
        end local 4 // long length
        end local 2 // long offset
        end local 1 // java.io.FileDescriptor fd
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Landroid/media/SoundPool;
            0    1     1        fd  Ljava/io/FileDescriptor;
            0    1     2    offset  J
            0    1     4    length  J
            0    1     6  priority  I
    MethodParameters:
          Name  Flags
      fd        
      offset    
      length    
      priority  

  public final native boolean unload(int);
    descriptor: (I)Z
    flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
         Name  Flags
      soundID  

  public final int play(int, float, float, int, int, float);
    descriptor: (IFFIIF)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // android.media.SoundPool this
        start local 1 // int soundID
        start local 2 // float leftVolume
        start local 3 // float rightVolume
        start local 4 // int priority
        start local 5 // int loop
        start local 6 // float rate
         0: .line 313
            aload 0 /* this */
            invokevirtual android.media.SoundPool.baseStart:()V
         1: .line 314
            aload 0 /* this */
            iload 1 /* soundID */
            fload 2 /* leftVolume */
            fload 3 /* rightVolume */
            iload 4 /* priority */
            iload 5 /* loop */
            fload 6 /* rate */
            invokevirtual android.media.SoundPool._play:(IFFIIF)I
            ireturn
        end local 6 // float rate
        end local 5 // int loop
        end local 4 // int priority
        end local 3 // float rightVolume
        end local 2 // float leftVolume
        end local 1 // int soundID
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Landroid/media/SoundPool;
            0    2     1      soundID  I
            0    2     2   leftVolume  F
            0    2     3  rightVolume  F
            0    2     4     priority  I
            0    2     5         loop  I
            0    2     6         rate  F
    MethodParameters:
             Name  Flags
      soundID      
      leftVolume   
      rightVolume  
      priority     
      loop         
      rate         

  public final native void pause(int);
    descriptor: (I)V
    flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
          Name  Flags
      streamID  

  public final native void resume(int);
    descriptor: (I)V
    flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
          Name  Flags
      streamID  

  public final native void autoPause();
    descriptor: ()V
    flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE

  public final native void autoResume();
    descriptor: ()V
    flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE

  public final native void stop(int);
    descriptor: (I)V
    flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
          Name  Flags
      streamID  

  public final void setVolume(int, float, float);
    descriptor: (IFF)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.media.SoundPool this
        start local 1 // int streamID
        start local 2 // float leftVolume
        start local 3 // float rightVolume
         0: .line 390
            aload 0 /* this */
            iload 1 /* streamID */
            fload 2 /* leftVolume */
            fload 3 /* rightVolume */
            invokevirtual android.media.SoundPool._setVolume:(IFF)V
         1: .line 391
            return
        end local 3 // float rightVolume
        end local 2 // float leftVolume
        end local 1 // int streamID
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Landroid/media/SoundPool;
            0    2     1     streamID  I
            0    2     2   leftVolume  F
            0    2     3  rightVolume  F
    MethodParameters:
             Name  Flags
      streamID     
      leftVolume   
      rightVolume  

  int playerApplyVolumeShaper(android.media.VolumeShaper$Configuration, android.media.VolumeShaper$Operation);
    descriptor: (Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)I
    flags: (0x0000) 
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // android.media.SoundPool this
        start local 1 // android.media.VolumeShaper$Configuration configuration
        start local 2 // android.media.VolumeShaper$Operation operation
         0: .line 397
            iconst_m1
            ireturn
        end local 2 // android.media.VolumeShaper$Operation operation
        end local 1 // android.media.VolumeShaper$Configuration configuration
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Landroid/media/SoundPool;
            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=1, locals=2, args_size=2
        start local 0 // android.media.SoundPool this
        start local 1 // int id
         0: .line 402
            aconst_null
            areturn
        end local 1 // int id
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/SoundPool;
            0    1     1    id  I
    MethodParameters:
      Name  Flags
      id    

  void playerSetVolume(boolean, float, float);
    descriptor: (ZFF)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // android.media.SoundPool this
        start local 1 // boolean muting
        start local 2 // float leftVolume
        start local 3 // float rightVolume
         0: .line 408
            aload 0 /* this */
            iload 1 /* muting */
            invokevirtual android.media.SoundPool._mute:(Z)V
         1: .line 409
            return
        end local 3 // float rightVolume
        end local 2 // float leftVolume
        end local 1 // boolean muting
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Landroid/media/SoundPool;
            0    2     1       muting  Z
            0    2     2   leftVolume  F
            0    2     3  rightVolume  F
    MethodParameters:
             Name  Flags
      muting       
      leftVolume   
      rightVolume  

  int playerSetAuxEffectSendLevel(boolean, float);
    descriptor: (ZF)I
    flags: (0x0000) 
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // android.media.SoundPool this
        start local 1 // boolean muting
        start local 2 // float level
         0: .line 414
            iconst_0
            ireturn
        end local 2 // float level
        end local 1 // boolean muting
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/media/SoundPool;
            0    1     1  muting  Z
            0    1     2   level  F
    MethodParameters:
        Name  Flags
      muting  
      level   

  void playerStart();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // android.media.SoundPool this
         0: .line 420
            return
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/SoundPool;

  void playerPause();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // android.media.SoundPool this
         0: .line 425
            return
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/SoundPool;

  void playerStop();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // android.media.SoundPool this
         0: .line 430
            return
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/SoundPool;

  public void setVolume(int, float);
    descriptor: (IF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.media.SoundPool this
        start local 1 // int streamID
        start local 2 // float volume
         0: .line 437
            aload 0 /* this */
            iload 1 /* streamID */
            fload 2 /* volume */
            fload 2 /* volume */
            invokevirtual android.media.SoundPool.setVolume:(IFF)V
         1: .line 438
            return
        end local 2 // float volume
        end local 1 // int streamID
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/SoundPool;
            0    2     1  streamID  I
            0    2     2    volume  F
    MethodParameters:
          Name  Flags
      streamID  
      volume    

  public final native void setPriority(int, int);
    descriptor: (II)V
    flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
          Name  Flags
      streamID  
      priority  

  public final native void setLoop(int, int);
    descriptor: (II)V
    flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
          Name  Flags
      streamID  
      loop      

  public final native void setRate(int, float);
    descriptor: (IF)V
    flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
          Name  Flags
      streamID  
      rate      

  public void setOnLoadCompleteListener(android.media.SoundPool$OnLoadCompleteListener);
    descriptor: (Landroid/media/SoundPool$OnLoadCompleteListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // android.media.SoundPool this
        start local 1 // android.media.SoundPool$OnLoadCompleteListener listener
         0: .line 494
            aload 0 /* this */
            getfield android.media.SoundPool.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 495
            aload 1 /* listener */
            ifnull 11
         2: .line 498
            invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
            dup
            astore 3 /* looper */
        start local 3 // android.os.Looper looper
         3: ifnull 6
         4: .line 499
            aload 0 /* this */
            new android.media.SoundPool$EventHandler
            dup
            aload 0 /* this */
            aload 3 /* looper */
            invokespecial android.media.SoundPool$EventHandler.<init>:(Landroid/media/SoundPool;Landroid/os/Looper;)V
            putfield android.media.SoundPool.mEventHandler:Landroid/media/SoundPool$EventHandler;
         5: .line 500
            goto 12
      StackMap locals: java.lang.Object android.os.Looper
      StackMap stack:
         6: invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
            dup
            astore 3 /* looper */
            ifnull 9
         7: .line 501
            aload 0 /* this */
            new android.media.SoundPool$EventHandler
            dup
            aload 0 /* this */
            aload 3 /* looper */
            invokespecial android.media.SoundPool$EventHandler.<init>:(Landroid/media/SoundPool;Landroid/os/Looper;)V
            putfield android.media.SoundPool.mEventHandler:Landroid/media/SoundPool$EventHandler;
         8: .line 502
            goto 12
         9: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.media.SoundPool.mEventHandler:Landroid/media/SoundPool$EventHandler;
        end local 3 // android.os.Looper looper
        10: .line 505
            goto 12
        11: .line 506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.media.SoundPool.mEventHandler:Landroid/media/SoundPool$EventHandler;
        12: .line 508
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.media.SoundPool.mOnLoadCompleteListener:Landroid/media/SoundPool$OnLoadCompleteListener;
        13: .line 494
            aload 2
            monitorexit
        14: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 2
            monitorexit
        16: athrow
        17: .line 510
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.SoundPool$OnLoadCompleteListener listener
        end local 0 // android.media.SoundPool this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Landroid/media/SoundPool;
            0   18     1  listener  Landroid/media/SoundPool$OnLoadCompleteListener;
            3   10     3    looper  Landroid/os/Looper;
      Exception table:
        from    to  target  type
           1    14      15  any
          15    16      15  any
    MethodParameters:
          Name  Flags
      listener  

  private final native int _load(java.io.FileDescriptor, long, long, int);
    descriptor: (Ljava/io/FileDescriptor;JJI)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
          Name  Flags
      fd        
      offset    
      length    
      priority  

  private final native int native_setup(java.lang.Object, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
            Name  Flags
      weakRef     
      maxStreams  
      attributes  

  private final native int _play(int, float, float, int, int, float);
    descriptor: (IFFIIF)I
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
             Name  Flags
      soundID      
      leftVolume   
      rightVolume  
      priority     
      loop         
      rate         

  private final native void _setVolume(int, float, float);
    descriptor: (IFF)V
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
    MethodParameters:
             Name  Flags
      streamID     
      leftVolume   
      rightVolume  

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

  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=7, args_size=5
        start local 0 // java.lang.Object ref
        start local 1 // int msg
        start local 2 // int arg1
        start local 3 // int arg2
        start local 4 // java.lang.Object obj
         0: .line 527
            aload 0 /* ref */
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast android.media.SoundPool
            astore 5 /* soundPool */
        start local 5 // android.media.SoundPool soundPool
         1: .line 528
            aload 5 /* soundPool */
            ifnonnull 3
         2: .line 529
            return
         3: .line 531
      StackMap locals: android.media.SoundPool
      StackMap stack:
            aload 5 /* soundPool */
            getfield android.media.SoundPool.mEventHandler:Landroid/media/SoundPool$EventHandler;
            ifnull 6
         4: .line 532
            aload 5 /* soundPool */
            getfield android.media.SoundPool.mEventHandler:Landroid/media/SoundPool$EventHandler;
            iload 1 /* msg */
            iload 2 /* arg1 */
            iload 3 /* arg2 */
            aload 4 /* obj */
            invokevirtual android.media.SoundPool$EventHandler.obtainMessage:(IIILjava/lang/Object;)Landroid/os/Message;
            astore 6 /* m */
        start local 6 // android.os.Message m
         5: .line 533
            aload 5 /* soundPool */
            getfield android.media.SoundPool.mEventHandler:Landroid/media/SoundPool$EventHandler;
            aload 6 /* m */
            invokevirtual android.media.SoundPool$EventHandler.sendMessage:(Landroid/os/Message;)Z
            pop
        end local 6 // android.os.Message m
         6: .line 535
      StackMap locals:
      StackMap stack:
            return
        end local 5 // android.media.SoundPool soundPool
        end local 4 // java.lang.Object obj
        end local 3 // int arg2
        end local 2 // int arg1
        end local 1 // int msg
        end local 0 // java.lang.Object ref
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0        ref  Ljava/lang/Object;
            0    7     1        msg  I
            0    7     2       arg1  I
            0    7     3       arg2  I
            0    7     4        obj  Ljava/lang/Object;
            1    7     5  soundPool  Landroid/media/SoundPool;
            5    6     6          m  Landroid/os/Message;
    MethodParameters:
      Name  Flags
      ref   
      msg   
      arg1  
      arg2  
      obj   
}
SourceFile: "SoundPool.java"
NestMembers:
  android.media.SoundPool$Builder  android.media.SoundPool$EventHandler  android.media.SoundPool$OnLoadCompleteListener
InnerClasses:
  public Builder = android.media.AudioAttributes$Builder of android.media.AudioAttributes
  public Builder = android.media.SoundPool$Builder of android.media.SoundPool
  private final EventHandler = android.media.SoundPool$EventHandler of android.media.SoundPool
  public abstract OnLoadCompleteListener = android.media.SoundPool$OnLoadCompleteListener of android.media.SoundPool
  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