public class android.media.AudioRecord implements android.media.AudioRouting
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.media.AudioRecord
super_class: java.lang.Object
{
public static final int STATE_UNINITIALIZED;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int STATE_INITIALIZED;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int RECORDSTATE_STOPPED;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int RECORDSTATE_RECORDING;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
public static final int SUCCESS;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int ERROR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -1
public static final int ERROR_BAD_VALUE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -2
public static final int ERROR_INVALID_OPERATION;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -3
public static final int ERROR_DEAD_OBJECT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -6
private static final int AUDIORECORD_ERROR_SETUP_ZEROFRAMECOUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -16
private static final int AUDIORECORD_ERROR_SETUP_INVALIDCHANNELMASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -17
private static final int AUDIORECORD_ERROR_SETUP_INVALIDFORMAT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -18
private static final int AUDIORECORD_ERROR_SETUP_INVALIDSOURCE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -19
private static final int AUDIORECORD_ERROR_SETUP_NATIVEINITFAILED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -20
private static final int NATIVE_EVENT_MARKER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int NATIVE_EVENT_NEW_POS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "android.media.AudioRecord"
public static final java.lang.String SUBMIX_FIXED_VOLUME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "fixedVolume"
public static final int READ_BLOCKING;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int READ_NON_BLOCKING;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private long mNativeRecorderInJavaObj;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long mNativeCallbackCookie;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long mNativeDeviceCallback;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private int mSampleRate;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mChannelCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mChannelMask;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mChannelIndexMask;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mAudioFormat;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mRecordSource;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mState;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mRecordingState;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object mRecordingStateLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private android.media.AudioRecord$OnRecordPositionUpdateListener mPositionListener;
descriptor: Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object mPositionListenerLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private android.media.AudioRecord$NativeEventHandler mEventHandler;
descriptor: Landroid/media/AudioRecord$NativeEventHandler;
flags: (0x0002) ACC_PRIVATE
private android.os.Looper mInitializationLooper;
descriptor: Landroid/os/Looper;
flags: (0x0002) ACC_PRIVATE
private int mNativeBufferSizeInBytes;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mSessionId;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private android.media.AudioAttributes mAudioAttributes;
descriptor: Landroid/media/AudioAttributes;
flags: (0x0002) ACC_PRIVATE
private boolean mIsSubmixFullVolume;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final android.os.IBinder mICallBack;
descriptor: Landroid/os/IBinder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private android.util.ArrayMap<android.media.AudioRouting$OnRoutingChangedListener, android.media.NativeRoutingEventHandlerDelegate> mRoutingChangeListeners;
descriptor: Landroid/util/ArrayMap;
flags: (0x0002) ACC_PRIVATE
Signature: Landroid/util/ArrayMap<Landroid/media/AudioRouting$OnRoutingChangedListener;Landroid/media/NativeRoutingEventHandlerDelegate;>;
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mRoutingChangeListeners")
private android.media.AudioDeviceInfo mPreferredDevice;
descriptor: Landroid/media/AudioDeviceInfo;
flags: (0x0002) ACC_PRIVATE
public void <init>(int, int, int, int, int);
descriptor: (IIIII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
new android.media.AudioAttributes$Builder
dup
invokespecial android.media.AudioAttributes$Builder.<init>:()V
1: iload 1
invokevirtual android.media.AudioAttributes$Builder.setInternalCapturePreset:(I)Landroid/media/AudioAttributes$Builder;
2: invokevirtual android.media.AudioAttributes$Builder.build:()Landroid/media/AudioAttributes;
3: new android.media.AudioFormat$Builder
dup
invokespecial android.media.AudioFormat$Builder.<init>:()V
4: iload 3
5: iconst_1
6: invokestatic android.media.AudioRecord.getChannelMaskFromLegacyConfig:(IZ)I
invokevirtual android.media.AudioFormat$Builder.setChannelMask:(I)Landroid/media/AudioFormat$Builder;
7: iload 4
invokevirtual android.media.AudioFormat$Builder.setEncoding:(I)Landroid/media/AudioFormat$Builder;
8: iload 2
invokevirtual android.media.AudioFormat$Builder.setSampleRate:(I)Landroid/media/AudioFormat$Builder;
9: invokevirtual android.media.AudioFormat$Builder.build:()Landroid/media/AudioFormat;
10: iload 5
11: iconst_0
invokespecial android.media.AudioRecord.<init>:(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)V
12: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/media/AudioRecord;
0 13 1 audioSource I
0 13 2 sampleRateInHz I
0 13 3 channelConfig I
0 13 4 audioFormat I
0 13 5 bufferSizeInBytes I
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
audioSource
sampleRateInHz
channelConfig
audioFormat
bufferSizeInBytes
public void <init>(android.media.AudioAttributes, android.media.AudioFormat, int, int);
descriptor: (Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=12, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield android.media.AudioRecord.mState:I
2: aload 0
iconst_1
putfield android.media.AudioRecord.mRecordingState:I
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield android.media.AudioRecord.mRecordingStateLock:Ljava/lang/Object;
4: aload 0
aconst_null
putfield android.media.AudioRecord.mPositionListener:Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
5: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield android.media.AudioRecord.mPositionListenerLock:Ljava/lang/Object;
6: aload 0
aconst_null
putfield android.media.AudioRecord.mEventHandler:Landroid/media/AudioRecord$NativeEventHandler;
7: aload 0
aconst_null
putfield android.media.AudioRecord.mInitializationLooper:Landroid/os/Looper;
8: aload 0
iconst_0
putfield android.media.AudioRecord.mNativeBufferSizeInBytes:I
9: aload 0
iconst_0
putfield android.media.AudioRecord.mSessionId:I
10: aload 0
iconst_0
putfield android.media.AudioRecord.mIsSubmixFullVolume:Z
11: aload 0
new android.os.Binder
dup
invokespecial android.os.Binder.<init>:()V
putfield android.media.AudioRecord.mICallBack:Landroid/os/IBinder;
12: aload 0
new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
putfield android.media.AudioRecord.mRoutingChangeListeners:Landroid/util/ArrayMap;
13: aload 0
aconst_null
putfield android.media.AudioRecord.mPreferredDevice:Landroid/media/AudioDeviceInfo;
14: aload 0
iconst_1
putfield android.media.AudioRecord.mRecordingState:I
15: aload 1
ifnonnull 17
16: new java.lang.IllegalArgumentException
dup
ldc "Illegal null AudioAttributes"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals: android.media.AudioRecord android.media.AudioAttributes android.media.AudioFormat int int
StackMap stack:
aload 2
ifnonnull 19
18: new java.lang.IllegalArgumentException
dup
ldc "Illegal null AudioFormat"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 0
invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
dup_x1
putfield android.media.AudioRecord.mInitializationLooper:Landroid/os/Looper;
ifnonnull 21
20: aload 0
invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
putfield android.media.AudioRecord.mInitializationLooper:Landroid/os/Looper;
21: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.media.AudioAttributes.getCapturePreset:()I
bipush 8
if_icmpne 35
22: new android.media.AudioAttributes$Builder
dup
invokespecial android.media.AudioAttributes$Builder.<init>:()V
astore 5
start local 5 23: aload 1
invokevirtual android.media.AudioAttributes.getTags:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
start local 6 24: goto 31
25: StackMap locals: android.media.AudioAttributes$Builder java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 26: aload 7
ldc "fixedVolume"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 30
27: aload 0
iconst_1
putfield android.media.AudioRecord.mIsSubmixFullVolume:Z
28: ldc "android.media.AudioRecord"
ldc "Will record from REMOTE_SUBMIX at full fixed volume"
invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
pop
29: goto 31
30: StackMap locals: java.lang.String
StackMap stack:
aload 5
aload 7
invokevirtual android.media.AudioAttributes$Builder.addTag:(Ljava/lang/String;)Landroid/media/AudioAttributes$Builder;
pop
end local 7 31: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 25
32: aload 5
aload 1
invokevirtual android.media.AudioAttributes.getCapturePreset:()I
invokevirtual android.media.AudioAttributes$Builder.setInternalCapturePreset:(I)Landroid/media/AudioAttributes$Builder;
pop
33: aload 0
aload 5
invokevirtual android.media.AudioAttributes$Builder.build:()Landroid/media/AudioAttributes;
putfield android.media.AudioRecord.mAudioAttributes:Landroid/media/AudioAttributes;
end local 6 end local 5 34: goto 36
35: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield android.media.AudioRecord.mAudioAttributes:Landroid/media/AudioAttributes;
36: StackMap locals:
StackMap stack:
aload 2
invokevirtual android.media.AudioFormat.getSampleRate:()I
istore 5
start local 5 37: iload 5
ifne 39
38: iconst_0
istore 5
39: StackMap locals: int
StackMap stack:
iconst_1
istore 6
start local 6 40: aload 2
invokevirtual android.media.AudioFormat.getPropertySetMask:()I
iconst_1
iand
ifeq 42
41: aload 2
invokevirtual android.media.AudioFormat.getEncoding:()I
istore 6
42: StackMap locals: int
StackMap stack:
aload 0
aload 1
invokevirtual android.media.AudioAttributes.getCapturePreset:()I
iload 5
iload 6
invokevirtual android.media.AudioRecord.audioParamCheck:(III)V
43: aload 2
invokevirtual android.media.AudioFormat.getPropertySetMask:()I
44: bipush 8
45: iand
ifeq 48
46: aload 0
aload 2
invokevirtual android.media.AudioFormat.getChannelIndexMask:()I
putfield android.media.AudioRecord.mChannelIndexMask:I
47: aload 0
aload 2
invokevirtual android.media.AudioFormat.getChannelCount:()I
putfield android.media.AudioRecord.mChannelCount:I
48: StackMap locals:
StackMap stack:
aload 2
invokevirtual android.media.AudioFormat.getPropertySetMask:()I
49: iconst_4
50: iand
ifeq 54
51: aload 0
aload 2
invokevirtual android.media.AudioFormat.getChannelMask:()I
iconst_0
invokestatic android.media.AudioRecord.getChannelMaskFromLegacyConfig:(IZ)I
putfield android.media.AudioRecord.mChannelMask:I
52: aload 0
aload 2
invokevirtual android.media.AudioFormat.getChannelCount:()I
putfield android.media.AudioRecord.mChannelCount:I
53: goto 57
StackMap locals:
StackMap stack:
54: aload 0
getfield android.media.AudioRecord.mChannelIndexMask:I
ifne 57
55: aload 0
iconst_1
iconst_0
invokestatic android.media.AudioRecord.getChannelMaskFromLegacyConfig:(IZ)I
putfield android.media.AudioRecord.mChannelMask:I
56: aload 0
aload 0
getfield android.media.AudioRecord.mChannelMask:I
invokestatic android.media.AudioFormat.channelCountFromInChannelMask:(I)I
putfield android.media.AudioRecord.mChannelCount:I
57: StackMap locals:
StackMap stack:
aload 0
iload 3
invokevirtual android.media.AudioRecord.audioBuffSizeCheck:(I)V
58: iconst_1
newarray 10
dup
iconst_0
aload 0
getfield android.media.AudioRecord.mSampleRate:I
iastore
astore 7
start local 7 59: iconst_1
newarray 10
astore 8
start local 8 60: aload 8
iconst_0
iload 4
iastore
61: aload 0
new java.lang.ref.WeakReference
dup
aload 0
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
62: aload 0
getfield android.media.AudioRecord.mAudioAttributes:Landroid/media/AudioAttributes;
aload 7
aload 0
getfield android.media.AudioRecord.mChannelMask:I
aload 0
getfield android.media.AudioRecord.mChannelIndexMask:I
63: aload 0
getfield android.media.AudioRecord.mAudioFormat:I
aload 0
getfield android.media.AudioRecord.mNativeBufferSizeInBytes:I
64: aload 8
invokestatic android.app.ActivityThread.currentOpPackageName:()Ljava/lang/String;
lconst_0
65: invokevirtual android.media.AudioRecord.native_setup:(Ljava/lang/Object;Ljava/lang/Object;[IIIII[ILjava/lang/String;J)I
istore 9
start local 9 66: iload 9
ifeq 69
67: new java.lang.StringBuilder
dup
ldc "Error code "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " when initializing native AudioRecord object."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.media.AudioRecord.loge:(Ljava/lang/String;)V
68: return
69: StackMap locals: int[] int[] int
StackMap stack:
aload 0
aload 7
iconst_0
iaload
putfield android.media.AudioRecord.mSampleRate:I
70: aload 0
aload 8
iconst_0
iaload
putfield android.media.AudioRecord.mSessionId:I
71: aload 0
iconst_1
putfield android.media.AudioRecord.mState:I
72: return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 73 0 this Landroid/media/AudioRecord;
0 73 1 attributes Landroid/media/AudioAttributes;
0 73 2 format Landroid/media/AudioFormat;
0 73 3 bufferSizeInBytes I
0 73 4 sessionId I
23 34 5 filteredAttr Landroid/media/AudioAttributes$Builder;
24 34 6 tagsIter Ljava/util/Iterator<Ljava/lang/String;>;
26 31 7 tag Ljava/lang/String;
37 73 5 rate I
40 73 6 encoding I
59 73 7 sampleRate [I
60 73 8 session [I
66 73 9 initResult I
Exceptions:
throws java.lang.IllegalArgumentException
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
MethodParameters:
Name Flags
attributes
format
bufferSizeInBytes
sessionId
void <init>(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield android.media.AudioRecord.mState:I
2: aload 0
iconst_1
putfield android.media.AudioRecord.mRecordingState:I
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield android.media.AudioRecord.mRecordingStateLock:Ljava/lang/Object;
4: aload 0
aconst_null
putfield android.media.AudioRecord.mPositionListener:Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
5: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield android.media.AudioRecord.mPositionListenerLock:Ljava/lang/Object;
6: aload 0
aconst_null
putfield android.media.AudioRecord.mEventHandler:Landroid/media/AudioRecord$NativeEventHandler;
7: aload 0
aconst_null
putfield android.media.AudioRecord.mInitializationLooper:Landroid/os/Looper;
8: aload 0
iconst_0
putfield android.media.AudioRecord.mNativeBufferSizeInBytes:I
9: aload 0
iconst_0
putfield android.media.AudioRecord.mSessionId:I
10: aload 0
iconst_0
putfield android.media.AudioRecord.mIsSubmixFullVolume:Z
11: aload 0
new android.os.Binder
dup
invokespecial android.os.Binder.<init>:()V
putfield android.media.AudioRecord.mICallBack:Landroid/os/IBinder;
12: aload 0
new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
putfield android.media.AudioRecord.mRoutingChangeListeners:Landroid/util/ArrayMap;
13: aload 0
aconst_null
putfield android.media.AudioRecord.mPreferredDevice:Landroid/media/AudioDeviceInfo;
14: aload 0
lconst_0
putfield android.media.AudioRecord.mNativeRecorderInJavaObj:J
15: aload 0
lconst_0
putfield android.media.AudioRecord.mNativeCallbackCookie:J
16: aload 0
lconst_0
putfield android.media.AudioRecord.mNativeDeviceCallback:J
17: lload 1
lconst_0
lcmp
ifeq 20
18: aload 0
lload 1
invokevirtual android.media.AudioRecord.deferred_connect:(J)V
19: goto 21
20: StackMap locals: android.media.AudioRecord long
StackMap stack:
aload 0
iconst_0
putfield android.media.AudioRecord.mState:I
21: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Landroid/media/AudioRecord;
0 22 1 nativeRecordInJavaObj J
MethodParameters:
Name Flags
nativeRecordInJavaObj
void deferred_connect(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=12, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.AudioRecord.mState:I
iconst_1
if_icmpeq 19
1: iconst_1
newarray 10
astore 3
start local 3 2: iconst_1
newarray 10
astore 4
start local 4 3: aload 0
new java.lang.ref.WeakReference
dup
aload 0
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
4: aconst_null
5: aload 4
6: iconst_0
7: iconst_0
8: iconst_0
9: iconst_0
10: aload 3
11: invokestatic android.app.ActivityThread.currentOpPackageName:()Ljava/lang/String;
12: lload 1
13: invokevirtual android.media.AudioRecord.native_setup:(Ljava/lang/Object;Ljava/lang/Object;[IIIII[ILjava/lang/String;J)I
istore 5
start local 5 14: iload 5
ifeq 17
15: new java.lang.StringBuilder
dup
ldc "Error code "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " when initializing native AudioRecord object."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.media.AudioRecord.loge:(Ljava/lang/String;)V
16: return
17: StackMap locals: int[] int[] int
StackMap stack:
aload 0
aload 3
iconst_0
iaload
putfield android.media.AudioRecord.mSessionId:I
18: aload 0
iconst_1
putfield android.media.AudioRecord.mState:I
end local 5 end local 4 end local 3 19: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Landroid/media/AudioRecord;
0 20 1 nativeRecordInJavaObj J
2 19 3 session [I
3 19 4 rates [I
14 19 5 initResult I
MethodParameters:
Name Flags
nativeRecordInJavaObj
private static int getChannelMaskFromLegacyConfig(int, boolean);
descriptor: (IZ)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iload 0
lookupswitch { // 6
1: 1
2: 1
3: 3
12: 3
16: 1
48: 5
default: 7
}
1: StackMap locals:
StackMap stack:
bipush 16
istore 2
start local 2 2: goto 8
end local 2 3: StackMap locals:
StackMap stack:
bipush 12
istore 2
start local 2 4: goto 8
end local 2 5: StackMap locals:
StackMap stack:
iload 0
istore 2
start local 2 6: goto 8
end local 2 7: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Unsupported channel configuration."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
start local 2 8: StackMap locals: int
StackMap stack:
iload 1
ifne 11
iload 0
iconst_2
if_icmpeq 10
9: iload 0
iconst_3
if_icmpne 11
10: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Unsupported deprecated configuration."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 inChannelConfig I
0 12 1 allowLegacyConfig Z
2 3 2 mask I
4 5 2 mask I
6 7 2 mask I
8 12 2 mask I
MethodParameters:
Name Flags
inChannelConfig
allowLegacyConfig
private void audioParamCheck(int, int, int);
descriptor: (III)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
iflt 4
1: iload 1
invokestatic android.media.MediaRecorder.getAudioSourceMax:()I
if_icmple 5
2: iload 1
sipush 1998
if_icmpeq 5
3: iload 1
sipush 1999
if_icmpeq 5
4: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid audio source "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield android.media.AudioRecord.mRecordSource:I
6: iload 2
sipush 4000
if_icmplt 8
7: iload 2
ldc 192000
if_icmple 12
8: StackMap locals:
StackMap stack:
iload 2
ifeq 12
9: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
iload 2
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: ldc "Hz is not a supported sample rate."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aload 0
iload 2
putfield android.media.AudioRecord.mSampleRate:I
13: iload 3
tableswitch { // 1 - 4
1: 14
2: 16
3: 16
4: 16
default: 18
}
14: StackMap locals:
StackMap stack:
aload 0
iconst_2
putfield android.media.AudioRecord.mAudioFormat:I
15: goto 21
16: StackMap locals:
StackMap stack:
aload 0
iload 3
putfield android.media.AudioRecord.mAudioFormat:I
17: goto 21
18: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported sample encoding "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
19: ldc ". Should be ENCODING_PCM_8BIT, ENCODING_PCM_16BIT, or ENCODING_PCM_FLOAT."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
20: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Landroid/media/AudioRecord;
0 22 1 audioSource I
0 22 2 sampleRateInHz I
0 22 3 audioFormat I
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
audioSource
sampleRateInHz
audioFormat
private void audioBuffSizeCheck(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.AudioRecord.mChannelCount:I
1: aload 0
getfield android.media.AudioRecord.mAudioFormat:I
invokestatic android.media.AudioFormat.getBytesPerSample:(I)I
2: imul
istore 2
start local 2 3: iload 1
iload 2
irem
ifne 4
iload 1
iconst_1
if_icmpge 7
4: StackMap locals: int
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid audio buffer size "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
5: ldc " (frame size "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield android.media.AudioRecord.mNativeBufferSizeInBytes:I
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/AudioRecord;
0 9 1 audioBufferSize I
3 9 2 frameSizeInBytes I
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
audioBufferSize
public void release();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.media.AudioRecord.stop:()V
1: goto 3
StackMap locals:
StackMap stack: java.lang.IllegalStateException
2: pop
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.media.AudioRecord.native_release:()V
4: aload 0
iconst_0
putfield android.media.AudioRecord.mState:I
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/media/AudioRecord;
Exception table:
from to target type
0 1 2 Class java.lang.IllegalStateException
protected void finalize();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.media.AudioRecord.release:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/media/AudioRecord;
public int getSampleRate();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.AudioRecord.mSampleRate:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/AudioRecord;
public int getAudioSource();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.AudioRecord.mRecordSource:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/AudioRecord;
public int getAudioFormat();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.AudioRecord.mAudioFormat:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/AudioRecord;
public int getChannelConfiguration();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.AudioRecord.mChannelMask:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/AudioRecord;
public android.media.AudioFormat getFormat();
descriptor: ()Landroid/media/AudioFormat;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new android.media.AudioFormat$Builder
dup
invokespecial android.media.AudioFormat$Builder.<init>:()V
1: aload 0
getfield android.media.AudioRecord.mSampleRate:I
invokevirtual android.media.AudioFormat$Builder.setSampleRate:(I)Landroid/media/AudioFormat$Builder;
2: aload 0
getfield android.media.AudioRecord.mAudioFormat:I
invokevirtual android.media.AudioFormat$Builder.setEncoding:(I)Landroid/media/AudioFormat$Builder;
3: astore 1
start local 1 4: aload 0
getfield android.media.AudioRecord.mChannelMask:I
ifeq 6
5: aload 1
aload 0
getfield android.media.AudioRecord.mChannelMask:I
invokevirtual android.media.AudioFormat$Builder.setChannelMask:(I)Landroid/media/AudioFormat$Builder;
pop
6: StackMap locals: android.media.AudioFormat$Builder
StackMap stack:
aload 0
getfield android.media.AudioRecord.mChannelIndexMask:I
ifeq 8
7: aload 1
aload 0
getfield android.media.AudioRecord.mChannelIndexMask:I
invokevirtual android.media.AudioFormat$Builder.setChannelIndexMask:(I)Landroid/media/AudioFormat$Builder;
pop
8: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.media.AudioFormat$Builder.build:()Landroid/media/AudioFormat;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/AudioRecord;
4 9 1 builder Landroid/media/AudioFormat$Builder;
public int getChannelCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.AudioRecord.mChannelCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/AudioRecord;
public int getState();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.AudioRecord.mState:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/AudioRecord;
public int getRecordingState();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield android.media.AudioRecord.mRecordingStateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield android.media.AudioRecord.mRecordingState:I
aload 1
monitorexit
2: ireturn
3: StackMap locals: android.media.AudioRecord java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/media/AudioRecord;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public int getBufferSizeInFrames();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.media.AudioRecord.native_get_buffer_size_in_frames:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/AudioRecord;
public int getNotificationMarkerPosition();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.media.AudioRecord.native_get_marker_pos:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/AudioRecord;
public int getPositionNotificationPeriod();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.media.AudioRecord.native_get_pos_update_period:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/AudioRecord;
public int getTimestamp(android.media.AudioTimestamp, int);
descriptor: (Landroid/media/AudioTimestamp;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 3
1: iload 2
iconst_1
if_icmpeq 4
2: iload 2
ifeq 4
3: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
invokevirtual android.media.AudioRecord.native_get_timestamp:(Landroid/media/AudioTimestamp;I)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/media/AudioRecord;
0 5 1 outTimestamp Landroid/media/AudioTimestamp;
0 5 2 timebase I
MethodParameters:
Name Flags
outTimestamp
timebase
public static int getMinBufferSize(int, int, int);
descriptor: (III)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: iload 1
lookupswitch { // 7
0: 6
1: 2
2: 2
3: 4
12: 4
16: 2
48: 4
default: 6
}
2: StackMap locals: int
StackMap stack:
iconst_1
istore 3
3: goto 8
4: StackMap locals:
StackMap stack:
iconst_2
istore 3
5: goto 8
6: StackMap locals:
StackMap stack:
ldc "getMinBufferSize(): Invalid channel configuration."
invokestatic android.media.AudioRecord.loge:(Ljava/lang/String;)V
7: bipush -2
ireturn
8: StackMap locals:
StackMap stack:
iload 0
iload 3
iload 2
invokestatic android.media.AudioRecord.native_get_min_buff_size:(III)I
istore 4
start local 4 9: iload 4
ifne 11
10: bipush -2
ireturn
11: StackMap locals: int
StackMap stack:
iload 4
iconst_m1
if_icmpne 13
12: iconst_m1
ireturn
13: StackMap locals:
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 sampleRateInHz I
0 14 1 channelConfig I
0 14 2 audioFormat I
1 14 3 channelCount I
9 14 4 size I
MethodParameters:
Name Flags
sampleRateInHz
channelConfig
audioFormat
public int getAudioSessionId();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.AudioRecord.mSessionId:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/AudioRecord;
public void startRecording();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield android.media.AudioRecord.mState:I
iconst_1
if_icmpeq 2
1: new java.lang.IllegalStateException
dup
ldc "startRecording() called on an uninitialized AudioRecord."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield android.media.AudioRecord.mRecordingStateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
3: aload 0
iconst_0
iconst_0
invokevirtual android.media.AudioRecord.native_start:(II)I
ifne 6
4: aload 0
iconst_1
invokevirtual android.media.AudioRecord.handleFullVolumeRec:(Z)V
5: aload 0
iconst_3
putfield android.media.AudioRecord.mRecordingState:I
6: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 1
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/media/AudioRecord;
Exception table:
from to target type
3 7 8 any
8 9 8 any
Exceptions:
throws java.lang.IllegalStateException
public void startRecording(android.media.MediaSyncEvent);
descriptor: (Landroid/media/MediaSyncEvent;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.AudioRecord.mState:I
iconst_1
if_icmpeq 2
1: new java.lang.IllegalStateException
dup
ldc "startRecording() called on an uninitialized AudioRecord."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield android.media.AudioRecord.mRecordingStateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
aload 1
invokevirtual android.media.MediaSyncEvent.getType:()I
aload 1
invokevirtual android.media.MediaSyncEvent.getAudioSessionId:()I
invokevirtual android.media.AudioRecord.native_start:(II)I
ifne 6
4: aload 0
iconst_1
invokevirtual android.media.AudioRecord.handleFullVolumeRec:(Z)V
5: aload 0
iconst_3
putfield android.media.AudioRecord.mRecordingState:I
6: StackMap locals: java.lang.Object
StackMap stack:
aload 2
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/media/AudioRecord;
0 11 1 syncEvent Landroid/media/MediaSyncEvent;
Exception table:
from to target type
3 7 8 any
8 9 8 any
Exceptions:
throws java.lang.IllegalStateException
MethodParameters:
Name Flags
syncEvent
public void stop();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield android.media.AudioRecord.mState:I
iconst_1
if_icmpeq 2
1: new java.lang.IllegalStateException
dup
ldc "stop() called on an uninitialized AudioRecord."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield android.media.AudioRecord.mRecordingStateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
3: aload 0
iconst_0
invokevirtual android.media.AudioRecord.handleFullVolumeRec:(Z)V
4: aload 0
invokevirtual android.media.AudioRecord.native_stop:()V
5: aload 0
iconst_1
putfield android.media.AudioRecord.mRecordingState:I
6: aload 1
monitorexit
7: goto 10
StackMap locals: android.media.AudioRecord java.lang.Object
StackMap stack: java.lang.Throwable
8: aload 1
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/media/AudioRecord;
Exception table:
from to target type
3 7 8 any
8 9 8 any
Exceptions:
throws java.lang.IllegalStateException
private void handleFullVolumeRec(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.AudioRecord.mIsSubmixFullVolume:Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
ldc "audio"
invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
astore 2
start local 2 3: aload 2
invokestatic android.media.IAudioService$Stub.asInterface:(Landroid/os/IBinder;)Landroid/media/IAudioService;
astore 3
start local 3 4: aload 3
iload 1
aload 0
getfield android.media.AudioRecord.mICallBack:Landroid/os/IBinder;
invokeinterface android.media.IAudioService.forceRemoteSubmixFullVolume:(ZLandroid/os/IBinder;)V
5: goto 8
StackMap locals: android.media.AudioRecord int android.os.IBinder android.media.IAudioService
StackMap stack: android.os.RemoteException
6: astore 4
start local 4 7: ldc "android.media.AudioRecord"
ldc "Error talking to AudioService when handling full submix volume"
aload 4
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 4 8: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/AudioRecord;
0 9 1 starting Z
3 9 2 b Landroid/os/IBinder;
4 9 3 ias Landroid/media/IAudioService;
7 8 4 e Landroid/os/RemoteException;
Exception table:
from to target type
4 5 6 Class android.os.RemoteException
MethodParameters:
Name Flags
starting
public int read(byte[], int, int);
descriptor: ([BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
iconst_0
invokevirtual android.media.AudioRecord.read:([BIII)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/AudioRecord;
0 1 1 audioData [B
0 1 2 offsetInBytes I
0 1 3 sizeInBytes I
MethodParameters:
Name Flags
audioData
offsetInBytes
sizeInBytes
public int read(byte[], int, int, int);
descriptor: ([BIII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield android.media.AudioRecord.mState:I
iconst_1
if_icmpne 1
aload 0
getfield android.media.AudioRecord.mAudioFormat:I
iconst_4
if_icmpne 2
1: StackMap locals:
StackMap stack:
bipush -3
ireturn
2: StackMap locals:
StackMap stack:
iload 4
ifeq 5
iload 4
iconst_1
if_icmpeq 5
3: ldc "android.media.AudioRecord"
ldc "AudioRecord.read() called with invalid blocking mode"
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
4: bipush -2
ireturn
5: StackMap locals:
StackMap stack:
aload 1
ifnull 8
iload 2
iflt 8
iload 3
iflt 8
6: iload 2
iload 3
iadd
iflt 8
7: iload 2
iload 3
iadd
aload 1
arraylength
if_icmple 9
8: StackMap locals:
StackMap stack:
bipush -2
ireturn
9: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
10: iload 4
ifne 11
iconst_1
goto 12
StackMap locals: android.media.AudioRecord byte[] int int int
StackMap stack: android.media.AudioRecord byte[] int int
11: iconst_0
12: StackMap locals: android.media.AudioRecord byte[] int int int
StackMap stack: android.media.AudioRecord byte[] int int int
invokevirtual android.media.AudioRecord.native_read_in_byte_array:([BIIZ)I
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/media/AudioRecord;
0 13 1 audioData [B
0 13 2 offsetInBytes I
0 13 3 sizeInBytes I
0 13 4 readMode I
MethodParameters:
Name Flags
audioData
offsetInBytes
sizeInBytes
readMode
public int read(short[], int, int);
descriptor: ([SII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
iconst_0
invokevirtual android.media.AudioRecord.read:([SIII)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/AudioRecord;
0 1 1 audioData [S
0 1 2 offsetInShorts I
0 1 3 sizeInShorts I
MethodParameters:
Name Flags
audioData
offsetInShorts
sizeInShorts
public int read(short[], int, int, int);
descriptor: ([SIII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield android.media.AudioRecord.mState:I
iconst_1
if_icmpne 1
aload 0
getfield android.media.AudioRecord.mAudioFormat:I
iconst_4
if_icmpne 2
1: StackMap locals:
StackMap stack:
bipush -3
ireturn
2: StackMap locals:
StackMap stack:
iload 4
ifeq 5
iload 4
iconst_1
if_icmpeq 5
3: ldc "android.media.AudioRecord"
ldc "AudioRecord.read() called with invalid blocking mode"
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
4: bipush -2
ireturn
5: StackMap locals:
StackMap stack:
aload 1
ifnull 8
iload 2
iflt 8
iload 3
iflt 8
6: iload 2
iload 3
iadd
iflt 8
7: iload 2
iload 3
iadd
aload 1
arraylength
if_icmple 9
8: StackMap locals:
StackMap stack:
bipush -2
ireturn
9: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
10: iload 4
ifne 11
iconst_1
goto 12
StackMap locals: android.media.AudioRecord short[] int int int
StackMap stack: android.media.AudioRecord short[] int int
11: iconst_0
12: StackMap locals: android.media.AudioRecord short[] int int int
StackMap stack: android.media.AudioRecord short[] int int int
invokevirtual android.media.AudioRecord.native_read_in_short_array:([SIIZ)I
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/media/AudioRecord;
0 13 1 audioData [S
0 13 2 offsetInShorts I
0 13 3 sizeInShorts I
0 13 4 readMode I
MethodParameters:
Name Flags
audioData
offsetInShorts
sizeInShorts
readMode
public int read(float[], int, int, int);
descriptor: ([FIII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield android.media.AudioRecord.mState:I
ifne 3
1: ldc "android.media.AudioRecord"
ldc "AudioRecord.read() called in invalid state STATE_UNINITIALIZED"
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
2: bipush -3
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield android.media.AudioRecord.mAudioFormat:I
iconst_4
if_icmpeq 6
4: ldc "android.media.AudioRecord"
ldc "AudioRecord.read(float[] ...) requires format ENCODING_PCM_FLOAT"
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
5: bipush -3
ireturn
6: StackMap locals:
StackMap stack:
iload 4
ifeq 9
iload 4
iconst_1
if_icmpeq 9
7: ldc "android.media.AudioRecord"
ldc "AudioRecord.read() called with invalid blocking mode"
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
8: bipush -2
ireturn
9: StackMap locals:
StackMap stack:
aload 1
ifnull 12
iload 2
iflt 12
iload 3
iflt 12
10: iload 2
iload 3
iadd
iflt 12
11: iload 2
iload 3
iadd
aload 1
arraylength
if_icmple 13
12: StackMap locals:
StackMap stack:
bipush -2
ireturn
13: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
14: iload 4
ifne 15
iconst_1
goto 16
StackMap locals: android.media.AudioRecord float[] int int int
StackMap stack: android.media.AudioRecord float[] int int
15: iconst_0
16: StackMap locals: android.media.AudioRecord float[] int int int
StackMap stack: android.media.AudioRecord float[] int int int
invokevirtual android.media.AudioRecord.native_read_in_float_array:([FIIZ)I
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Landroid/media/AudioRecord;
0 17 1 audioData [F
0 17 2 offsetInFloats I
0 17 3 sizeInFloats I
0 17 4 readMode I
MethodParameters:
Name Flags
audioData
offsetInFloats
sizeInFloats
readMode
public int read(java.nio.ByteBuffer, int);
descriptor: (Ljava/nio/ByteBuffer;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
iconst_0
invokevirtual android.media.AudioRecord.read:(Ljava/nio/ByteBuffer;II)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/AudioRecord;
0 1 1 audioBuffer Ljava/nio/ByteBuffer;
0 1 2 sizeInBytes I
MethodParameters:
Name Flags
audioBuffer
sizeInBytes
public int read(java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield android.media.AudioRecord.mState:I
iconst_1
if_icmpeq 2
1: bipush -3
ireturn
2: StackMap locals:
StackMap stack:
iload 3
ifeq 5
iload 3
iconst_1
if_icmpeq 5
3: ldc "android.media.AudioRecord"
ldc "AudioRecord.read() called with invalid blocking mode"
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
4: bipush -2
ireturn
5: StackMap locals:
StackMap stack:
aload 1
ifnull 6
iload 2
ifge 7
6: StackMap locals:
StackMap stack:
bipush -2
ireturn
7: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
ifne 8
iconst_1
goto 9
StackMap locals: android.media.AudioRecord java.nio.ByteBuffer int int
StackMap stack: android.media.AudioRecord java.nio.ByteBuffer int
8: iconst_0
StackMap locals: android.media.AudioRecord java.nio.ByteBuffer int int
StackMap stack: android.media.AudioRecord java.nio.ByteBuffer int int
9: invokevirtual android.media.AudioRecord.native_read_in_direct_buffer:(Ljava/lang/Object;IZ)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/media/AudioRecord;
0 10 1 audioBuffer Ljava/nio/ByteBuffer;
0 10 2 sizeInBytes I
0 10 3 readMode I
MethodParameters:
Name Flags
audioBuffer
sizeInBytes
readMode
public android.os.PersistableBundle getMetrics();
descriptor: ()Landroid/os/PersistableBundle;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual android.media.AudioRecord.native_getMetrics:()Landroid/os/PersistableBundle;
astore 1
start local 1 1: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/media/AudioRecord;
1 2 1 bundle Landroid/os/PersistableBundle;
private native android.os.PersistableBundle native_getMetrics();
descriptor: ()Landroid/os/PersistableBundle;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
public void setRecordPositionUpdateListener(android.media.AudioRecord$OnRecordPositionUpdateListener);
descriptor: (Landroid/media/AudioRecord$OnRecordPositionUpdateListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokevirtual android.media.AudioRecord.setRecordPositionUpdateListener:(Landroid/media/AudioRecord$OnRecordPositionUpdateListener;Landroid/os/Handler;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/media/AudioRecord;
0 2 1 listener Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
MethodParameters:
Name Flags
listener
public void setRecordPositionUpdateListener(android.media.AudioRecord$OnRecordPositionUpdateListener, android.os.Handler);
descriptor: (Landroid/media/AudioRecord$OnRecordPositionUpdateListener;Landroid/os/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.media.AudioRecord.mPositionListenerLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
aload 1
putfield android.media.AudioRecord.mPositionListener:Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
2: aload 1
ifnull 8
3: aload 2
ifnull 6
4: aload 0
new android.media.AudioRecord$NativeEventHandler
dup
aload 0
aload 0
aload 2
invokevirtual android.os.Handler.getLooper:()Landroid/os/Looper;
invokespecial android.media.AudioRecord$NativeEventHandler.<init>:(Landroid/media/AudioRecord;Landroid/media/AudioRecord;Landroid/os/Looper;)V
putfield android.media.AudioRecord.mEventHandler:Landroid/media/AudioRecord$NativeEventHandler;
5: goto 9
6: StackMap locals: java.lang.Object
StackMap stack:
aload 0
new android.media.AudioRecord$NativeEventHandler
dup
aload 0
aload 0
aload 0
getfield android.media.AudioRecord.mInitializationLooper:Landroid/os/Looper;
invokespecial android.media.AudioRecord$NativeEventHandler.<init>:(Landroid/media/AudioRecord;Landroid/media/AudioRecord;Landroid/os/Looper;)V
putfield android.media.AudioRecord.mEventHandler:Landroid/media/AudioRecord$NativeEventHandler;
7: goto 9
8: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield android.media.AudioRecord.mEventHandler:Landroid/media/AudioRecord$NativeEventHandler;
9: StackMap locals:
StackMap stack:
aload 3
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 3
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Landroid/media/AudioRecord;
0 14 1 listener Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
0 14 2 handler Landroid/os/Handler;
Exception table:
from to target type
1 10 11 any
11 12 11 any
MethodParameters:
Name Flags
listener
handler
public int setNotificationMarkerPosition(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.AudioRecord.mState:I
ifne 2
1: bipush -3
ireturn
2: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual android.media.AudioRecord.native_set_marker_pos:(I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/media/AudioRecord;
0 3 1 markerInFrames I
MethodParameters:
Name Flags
markerInFrames
public android.media.AudioDeviceInfo getRoutedDevice();
descriptor: ()Landroid/media/AudioDeviceInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual android.media.AudioRecord.native_getRoutedDeviceId:()I
istore 1
start local 1 1: iload 1
ifne 3
2: aconst_null
areturn
3: StackMap locals: int
StackMap stack:
iconst_1
invokestatic android.media.AudioManager.getDevicesStatic:(I)[Landroid/media/AudioDeviceInfo;
4: astore 2
start local 2 5: iconst_0
istore 3
start local 3 6: goto 10
7: StackMap locals: android.media.AudioDeviceInfo[] int
StackMap stack:
aload 2
iload 3
aaload
invokevirtual android.media.AudioDeviceInfo.getId:()I
iload 1
if_icmpne 9
8: aload 2
iload 3
aaload
areturn
9: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
aload 2
arraylength
if_icmplt 7
end local 3 11: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/media/AudioRecord;
1 12 1 deviceId I
5 12 2 devices [Landroid/media/AudioDeviceInfo;
6 11 3 i I
private void testEnableNativeRoutingCallbacksLocked();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.AudioRecord.mRoutingChangeListeners:Landroid/util/ArrayMap;
invokevirtual android.util.ArrayMap.size:()I
ifne 2
1: aload 0
invokevirtual android.media.AudioRecord.native_enableDeviceCallback:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/media/AudioRecord;
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mRoutingChangeListeners")
private void testDisableNativeRoutingCallbacksLocked();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.AudioRecord.mRoutingChangeListeners:Landroid/util/ArrayMap;
invokevirtual android.util.ArrayMap.size:()I
ifne 2
1: aload 0
invokevirtual android.media.AudioRecord.native_disableDeviceCallback:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/media/AudioRecord;
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mRoutingChangeListeners")
public void addOnRoutingChangedListener(android.media.AudioRouting$OnRoutingChangedListener, android.os.Handler);
descriptor: (Landroid/media/AudioRouting$OnRoutingChangedListener;Landroid/os/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.media.AudioRecord.mRoutingChangeListeners:Landroid/util/ArrayMap;
dup
astore 3
monitorenter
1: aload 1
ifnull 10
aload 0
getfield android.media.AudioRecord.mRoutingChangeListeners:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.containsKey:(Ljava/lang/Object;)Z
ifne 10
2: aload 0
invokevirtual android.media.AudioRecord.testEnableNativeRoutingCallbacksLocked:()V
3: aload 0
getfield android.media.AudioRecord.mRoutingChangeListeners:Landroid/util/ArrayMap;
4: aload 1
5: new android.media.NativeRoutingEventHandlerDelegate
dup
aload 0
aload 1
6: aload 2
ifnull 7
aload 2
goto 8
StackMap locals: android.media.AudioRecord android.media.AudioRouting$OnRoutingChangedListener android.os.Handler android.util.ArrayMap
StackMap stack: android.util.ArrayMap android.media.AudioRouting$OnRoutingChangedListener new 5 new 5 android.media.AudioRecord android.media.AudioRouting$OnRoutingChangedListener
7: new android.os.Handler
dup
aload 0
getfield android.media.AudioRecord.mInitializationLooper:Landroid/os/Looper;
invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
StackMap locals: android.media.AudioRecord android.media.AudioRouting$OnRoutingChangedListener android.os.Handler android.util.ArrayMap
StackMap stack: android.util.ArrayMap android.media.AudioRouting$OnRoutingChangedListener new 5 new 5 android.media.AudioRecord android.media.AudioRouting$OnRoutingChangedListener android.os.Handler
8: invokespecial android.media.NativeRoutingEventHandlerDelegate.<init>:(Landroid/media/AudioRouting;Landroid/media/AudioRouting$OnRoutingChangedListener;Landroid/os/Handler;)V
9: invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: StackMap locals:
StackMap stack:
aload 3
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 3
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Landroid/media/AudioRecord;
0 15 1 listener Landroid/media/AudioRouting$OnRoutingChangedListener;
0 15 2 handler Landroid/os/Handler;
Exception table:
from to target type
1 11 12 any
12 13 12 any
MethodParameters:
Name Flags
listener
handler
public void removeOnRoutingChangedListener(android.media.AudioRouting$OnRoutingChangedListener);
descriptor: (Landroid/media/AudioRouting$OnRoutingChangedListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.AudioRecord.mRoutingChangeListeners:Landroid/util/ArrayMap;
dup
astore 2
monitorenter
1: aload 0
getfield android.media.AudioRecord.mRoutingChangeListeners:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.containsKey:(Ljava/lang/Object;)Z
ifeq 4
2: aload 0
getfield android.media.AudioRecord.mRoutingChangeListeners:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 0
invokevirtual android.media.AudioRecord.testDisableNativeRoutingCallbacksLocked:()V
4: StackMap locals: android.util.ArrayMap
StackMap stack:
aload 2
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/AudioRecord;
0 9 1 listener Landroid/media/AudioRouting$OnRoutingChangedListener;
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
listener
public void addOnRoutingChangedListener(android.media.AudioRecord$OnRoutingChangedListener, android.os.Handler);
descriptor: (Landroid/media/AudioRecord$OnRoutingChangedListener;Landroid/os/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual android.media.AudioRecord.addOnRoutingChangedListener:(Landroid/media/AudioRouting$OnRoutingChangedListener;Landroid/os/Handler;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/media/AudioRecord;
0 2 1 listener Landroid/media/AudioRecord$OnRoutingChangedListener;
0 2 2 handler Landroid/os/Handler;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
listener
handler
public void removeOnRoutingChangedListener(android.media.AudioRecord$OnRoutingChangedListener);
descriptor: (Landroid/media/AudioRecord$OnRoutingChangedListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual android.media.AudioRecord.removeOnRoutingChangedListener:(Landroid/media/AudioRouting$OnRoutingChangedListener;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/media/AudioRecord;
0 2 1 listener Landroid/media/AudioRecord$OnRoutingChangedListener;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
listener
private void broadcastRoutingChange();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: invokestatic android.media.AudioManager.resetAudioPortGeneration:()I
pop
1: aload 0
getfield android.media.AudioRecord.mRoutingChangeListeners:Landroid/util/ArrayMap;
dup
astore 1
monitorenter
2: aload 0
getfield android.media.AudioRecord.mRoutingChangeListeners:Landroid/util/ArrayMap;
invokevirtual android.util.ArrayMap.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: android.media.AudioRecord android.util.ArrayMap top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.media.NativeRoutingEventHandlerDelegate
astore 2
start local 2 4: aload 2
invokevirtual android.media.NativeRoutingEventHandlerDelegate.notifyClient:()V
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: aload 1
monitorexit
7: goto 10
StackMap locals: android.media.AudioRecord android.util.ArrayMap
StackMap stack: java.lang.Throwable
8: aload 1
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/media/AudioRecord;
4 5 2 delegate Landroid/media/NativeRoutingEventHandlerDelegate;
Exception table:
from to target type
2 7 8 any
8 9 8 any
public int setPositionNotificationPeriod(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.AudioRecord.mState:I
ifne 2
1: bipush -3
ireturn
2: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual android.media.AudioRecord.native_set_pos_update_period:(I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/media/AudioRecord;
0 3 1 periodInFrames I
MethodParameters:
Name Flags
periodInFrames
public boolean setPreferredDevice(android.media.AudioDeviceInfo);
descriptor: (Landroid/media/AudioDeviceInfo;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
aload 1
invokevirtual android.media.AudioDeviceInfo.isSource:()Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
ifnull 3
aload 1
invokevirtual android.media.AudioDeviceInfo.getId:()I
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 2
start local 2 5: aload 0
iload 2
invokevirtual android.media.AudioRecord.native_setInputDevice:(I)Z
istore 3
start local 3 6: iload 3
ifeq 13
7: aload 0
dup
astore 4
monitorenter
8: aload 0
aload 1
putfield android.media.AudioRecord.mPreferredDevice:Landroid/media/AudioDeviceInfo;
9: aload 4
monitorexit
10: goto 13
StackMap locals: android.media.AudioRecord android.media.AudioDeviceInfo int int android.media.AudioRecord
StackMap stack: java.lang.Throwable
11: aload 4
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Landroid/media/AudioRecord;
0 14 1 deviceInfo Landroid/media/AudioDeviceInfo;
5 14 2 preferredDeviceId I
6 14 3 status Z
Exception table:
from to target type
8 10 11 any
11 12 11 any
MethodParameters:
Name Flags
deviceInfo
public android.media.AudioDeviceInfo getPreferredDevice();
descriptor: ()Landroid/media/AudioDeviceInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
dup
astore 1
monitorenter
1: aload 0
getfield android.media.AudioRecord.mPreferredDevice:Landroid/media/AudioDeviceInfo;
aload 1
monitorexit
2: areturn
3: StackMap locals: android.media.AudioRecord android.media.AudioRecord
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/media/AudioRecord;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public java.util.List<android.media.MicrophoneInfo> getActiveMicrophones();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual android.media.AudioRecord.native_get_active_microphones:(Ljava/util/ArrayList;)I
istore 2
start local 2 2: iload 2
ifeq 6
3: iload 2
bipush -3
if_icmpeq 5
4: ldc "android.media.AudioRecord"
new java.lang.StringBuilder
dup
ldc "getActiveMicrophones failed:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
5: StackMap locals: java.util.ArrayList int
StackMap stack:
ldc "android.media.AudioRecord"
ldc "getActiveMicrophones failed, fallback on routed device info"
invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
pop
6: StackMap locals:
StackMap stack:
aload 1
invokestatic android.media.AudioManager.setPortIdForMicrophones:(Ljava/util/ArrayList;)V
7: aload 1
invokevirtual java.util.ArrayList.size:()I
ifne 19
8: aload 0
invokevirtual android.media.AudioRecord.getRoutedDevice:()Landroid/media/AudioDeviceInfo;
astore 3
start local 3 9: aload 3
ifnull 19
10: aload 3
invokestatic android.media.AudioManager.microphoneInfoFromAudioDeviceInfo:(Landroid/media/AudioDeviceInfo;)Landroid/media/MicrophoneInfo;
astore 4
start local 4 11: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 12: iconst_0
istore 6
start local 6 13: goto 16
14: StackMap locals: android.media.AudioRecord java.util.ArrayList int android.media.AudioDeviceInfo android.media.MicrophoneInfo java.util.ArrayList int
StackMap stack:
aload 5
new android.util.Pair
dup
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial android.util.Pair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
15: iinc 6 1
StackMap locals:
StackMap stack:
16: iload 6
aload 0
getfield android.media.AudioRecord.mChannelCount:I
if_icmplt 14
end local 6 17: aload 4
aload 5
invokevirtual android.media.MicrophoneInfo.setChannelMapping:(Ljava/util/List;)V
18: aload 1
aload 4
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 4 end local 3 19: StackMap locals: android.media.AudioRecord java.util.ArrayList int
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Landroid/media/AudioRecord;
1 20 1 activeMicrophones Ljava/util/ArrayList<Landroid/media/MicrophoneInfo;>;
2 20 2 status I
9 19 3 device Landroid/media/AudioDeviceInfo;
11 19 4 microphone Landroid/media/MicrophoneInfo;
12 19 5 channelMapping Ljava/util/ArrayList<Landroid/util/Pair<Ljava/lang/Integer;Ljava/lang/Integer;>;>;
13 17 6 i I
Exceptions:
throws java.io.IOException
Signature: ()Ljava/util/List<Landroid/media/MicrophoneInfo;>;
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 start local 1 start local 2 start local 3 start local 4 0: aload 0
checkcast java.lang.ref.WeakReference
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast android.media.AudioRecord
astore 5
start local 5 1: aload 5
ifnonnull 3
2: return
3: StackMap locals: android.media.AudioRecord
StackMap stack:
iload 1
sipush 1000
if_icmpne 6
4: aload 5
invokevirtual android.media.AudioRecord.broadcastRoutingChange:()V
5: return
6: StackMap locals:
StackMap stack:
aload 5
getfield android.media.AudioRecord.mEventHandler:Landroid/media/AudioRecord$NativeEventHandler;
ifnull 10
7: aload 5
getfield android.media.AudioRecord.mEventHandler:Landroid/media/AudioRecord$NativeEventHandler;
iload 1
iload 2
iload 3
aload 4
invokevirtual android.media.AudioRecord$NativeEventHandler.obtainMessage:(IIILjava/lang/Object;)Landroid/os/Message;
8: astore 6
start local 6 9: aload 5
getfield android.media.AudioRecord.mEventHandler:Landroid/media/AudioRecord$NativeEventHandler;
aload 6
invokevirtual android.media.AudioRecord$NativeEventHandler.sendMessage:(Landroid/os/Message;)Z
pop
end local 6 10: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 audiorecord_ref Ljava/lang/Object;
0 11 1 what I
0 11 2 arg1 I
0 11 3 arg2 I
0 11 4 obj Ljava/lang/Object;
1 11 5 recorder Landroid/media/AudioRecord;
9 10 6 m Landroid/os/Message;
MethodParameters:
Name Flags
audiorecord_ref
what
arg1
arg2
obj
private final native int native_setup(java.lang.Object, java.lang.Object, int[], int, int, int, int, int[], java.lang.String, long);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;[IIIII[ILjava/lang/String;J)I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
audiorecord_this
attributes
sampleRate
channelMask
channelIndexMask
audioFormat
buffSizeInBytes
sessionId
opPackageName
nativeRecordInJavaObj
private final native void native_finalize();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
public final native void native_release();
descriptor: ()V
flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
private final native int native_start(int, int);
descriptor: (II)I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
syncEvent
sessionId
private final native void native_stop();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
private final native int native_read_in_byte_array(byte[], int, int, boolean);
descriptor: ([BIIZ)I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
audioData
offsetInBytes
sizeInBytes
isBlocking
private final native int native_read_in_short_array(short[], int, int, boolean);
descriptor: ([SIIZ)I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
audioData
offsetInShorts
sizeInShorts
isBlocking
private final native int native_read_in_float_array(float[], int, int, boolean);
descriptor: ([FIIZ)I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
audioData
offsetInFloats
sizeInFloats
isBlocking
private final native int native_read_in_direct_buffer(java.lang.Object, int, boolean);
descriptor: (Ljava/lang/Object;IZ)I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
jBuffer
sizeInBytes
isBlocking
private final native int native_get_buffer_size_in_frames();
descriptor: ()I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
private final native int native_set_marker_pos(int);
descriptor: (I)I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
marker
private final native int native_get_marker_pos();
descriptor: ()I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
private final native int native_set_pos_update_period(int);
descriptor: (I)I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
updatePeriod
private final native int native_get_pos_update_period();
descriptor: ()I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
private static final native int native_get_min_buff_size(int, int, int);
descriptor: (III)I
flags: (0x011a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
sampleRateInHz
channelCount
audioFormat
private final native boolean native_setInputDevice(int);
descriptor: (I)Z
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
deviceId
private final native int native_getRoutedDeviceId();
descriptor: ()I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
private final native void native_enableDeviceCallback();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
private final native void native_disableDeviceCallback();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
private final native int native_get_timestamp(android.media.AudioTimestamp, int);
descriptor: (Landroid/media/AudioTimestamp;I)I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
outTimestamp
timebase
private final native int native_get_active_microphones(java.util.ArrayList<android.media.MicrophoneInfo>);
descriptor: (Ljava/util/ArrayList;)I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
Signature: (Ljava/util/ArrayList<Landroid/media/MicrophoneInfo;>;)I
MethodParameters:
Name Flags
activeMicrophones
private static void logd(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc "android.media.AudioRecord"
aload 0
invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 msg Ljava/lang/String;
MethodParameters:
Name Flags
msg
private static void loge(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc "android.media.AudioRecord"
aload 0
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 msg Ljava/lang/String;
MethodParameters:
Name Flags
msg
}
SourceFile: "AudioRecord.java"
NestMembers:
android.media.AudioRecord$Builder android.media.AudioRecord$MetricsConstants android.media.AudioRecord$NativeEventHandler android.media.AudioRecord$OnRecordPositionUpdateListener android.media.AudioRecord$OnRoutingChangedListener android.media.AudioRecord$ReadMode
InnerClasses:
public Builder = android.media.AudioAttributes$Builder of android.media.AudioAttributes
public Builder = android.media.AudioFormat$Builder of android.media.AudioFormat
public Builder = android.media.AudioRecord$Builder of android.media.AudioRecord
public final MetricsConstants = android.media.AudioRecord$MetricsConstants of android.media.AudioRecord
private NativeEventHandler = android.media.AudioRecord$NativeEventHandler of android.media.AudioRecord
public abstract OnRecordPositionUpdateListener = android.media.AudioRecord$OnRecordPositionUpdateListener of android.media.AudioRecord
public abstract OnRoutingChangedListener = android.media.AudioRecord$OnRoutingChangedListener of android.media.AudioRecord
public abstract ReadMode = android.media.AudioRecord$ReadMode of android.media.AudioRecord
public abstract OnRoutingChangedListener = android.media.AudioRouting$OnRoutingChangedListener of android.media.AudioRouting
public abstract Stub = android.media.IAudioService$Stub of android.media.IAudioService