class android.speech.tts.BlockingAudioTrack
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: android.speech.tts.BlockingAudioTrack
super_class: java.lang.Object
{
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "TTS.BlockingAudioTrack"
private static final boolean DBG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final long MIN_SLEEP_TIME_MS;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
private static final long MAX_SLEEP_TIME_MS;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2500
private static final long MAX_PROGRESS_WAIT_MS;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2500
private static final int MIN_AUDIO_BUFFER_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8192
private final android.speech.tts.TextToSpeechService$AudioOutputParams mAudioParams;
descriptor: Landroid/speech/tts/TextToSpeechService$AudioOutputParams;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mSampleRateInHz;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mAudioFormat;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mChannelCount;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mBytesPerFrame;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean mIsShortUtterance;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int mAudioBufferSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mBytesWritten;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.Object mAudioTrackLock;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private android.media.AudioTrack mAudioTrack;
descriptor: Landroid/media/AudioTrack;
flags: (0x0002) ACC_PRIVATE
private volatile boolean mStopped;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private int mSessionId;
descriptor: I
flags: (0x0002) ACC_PRIVATE
void <init>(android.speech.tts.TextToSpeechService$AudioOutputParams, int, int, int);
descriptor: (Landroid/speech/tts/TextToSpeechService$AudioOutputParams;III)V
flags: (0x0000)
Code:
stack=3, locals=5, 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.speech.tts.BlockingAudioTrack.mBytesWritten:I
2: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield android.speech.tts.BlockingAudioTrack.mAudioTrackLock:Ljava/lang/Object;
3: aload 0
aload 1
putfield android.speech.tts.BlockingAudioTrack.mAudioParams:Landroid/speech/tts/TextToSpeechService$AudioOutputParams;
4: aload 0
iload 2
putfield android.speech.tts.BlockingAudioTrack.mSampleRateInHz:I
5: aload 0
iload 3
putfield android.speech.tts.BlockingAudioTrack.mAudioFormat:I
6: aload 0
iload 4
putfield android.speech.tts.BlockingAudioTrack.mChannelCount:I
7: aload 0
aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioFormat:I
invokestatic android.media.AudioFormat.getBytesPerSample:(I)I
aload 0
getfield android.speech.tts.BlockingAudioTrack.mChannelCount:I
imul
putfield android.speech.tts.BlockingAudioTrack.mBytesPerFrame:I
8: aload 0
iconst_0
putfield android.speech.tts.BlockingAudioTrack.mIsShortUtterance:Z
9: aload 0
iconst_0
putfield android.speech.tts.BlockingAudioTrack.mAudioBufferSize:I
10: aload 0
iconst_0
putfield android.speech.tts.BlockingAudioTrack.mBytesWritten:I
11: aload 0
aconst_null
putfield android.speech.tts.BlockingAudioTrack.mAudioTrack:Landroid/media/AudioTrack;
12: aload 0
iconst_0
putfield android.speech.tts.BlockingAudioTrack.mStopped:Z
13: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Landroid/speech/tts/BlockingAudioTrack;
0 14 1 audioParams Landroid/speech/tts/TextToSpeechService$AudioOutputParams;
0 14 2 sampleRate I
0 14 3 audioFormat I
0 14 4 channelCount I
MethodParameters:
Name Flags
audioParams
sampleRate
audioFormat
channelCount
public boolean init();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual android.speech.tts.BlockingAudioTrack.createStreamingAudioTrack:()Landroid/media/AudioTrack;
astore 1
start local 1 1: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrackLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
aload 1
putfield android.speech.tts.BlockingAudioTrack.mAudioTrack:Landroid/media/AudioTrack;
3: aload 2
monitorexit
4: goto 7
StackMap locals: android.speech.tts.BlockingAudioTrack android.media.AudioTrack java.lang.Object
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
aload 1
ifnonnull 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/speech/tts/BlockingAudioTrack;
1 10 1 track Landroid/media/AudioTrack;
Exception table:
from to target type
2 4 5 any
5 6 5 any
public void stop();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrackLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrack:Landroid/media/AudioTrack;
ifnull 3
2: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrack:Landroid/media/AudioTrack;
invokevirtual android.media.AudioTrack.stop:()V
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iconst_1
putfield android.speech.tts.BlockingAudioTrack.mStopped:Z
4: aload 1
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/speech/tts/BlockingAudioTrack;
Exception table:
from to target type
1 5 6 any
6 7 6 any
public int write(byte[]);
descriptor: ([B)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrackLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrack:Landroid/media/AudioTrack;
astore 2
3: aload 3
monitorexit
4: goto 7
StackMap locals: android.speech.tts.BlockingAudioTrack byte[] android.media.AudioTrack java.lang.Object
StackMap stack: java.lang.Throwable
5: aload 3
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
aload 2
ifnull 8
aload 0
getfield android.speech.tts.BlockingAudioTrack.mStopped:Z
ifeq 9
8: StackMap locals:
StackMap stack:
iconst_m1
ireturn
9: StackMap locals:
StackMap stack:
aload 2
aload 1
invokestatic android.speech.tts.BlockingAudioTrack.writeToAudioTrack:(Landroid/media/AudioTrack;[B)I
istore 3
start local 3 10: aload 0
dup
getfield android.speech.tts.BlockingAudioTrack.mBytesWritten:I
iload 3
iadd
putfield android.speech.tts.BlockingAudioTrack.mBytesWritten:I
11: iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/speech/tts/BlockingAudioTrack;
0 12 1 data [B
1 12 2 track Landroid/media/AudioTrack;
10 12 3 bytesWritten I
Exception table:
from to target type
2 4 5 any
5 6 5 any
MethodParameters:
Name Flags
data
public void waitAndRelease();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrackLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrack:Landroid/media/AudioTrack;
astore 1
3: aload 2
monitorexit
4: goto 7
StackMap locals: android.speech.tts.BlockingAudioTrack android.media.AudioTrack java.lang.Object
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
aload 1
ifnonnull 9
8: return
9: StackMap locals:
StackMap stack:
aload 0
getfield android.speech.tts.BlockingAudioTrack.mBytesWritten:I
aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioBufferSize:I
if_icmpge 12
aload 0
getfield android.speech.tts.BlockingAudioTrack.mStopped:Z
ifne 12
10: aload 0
iconst_1
putfield android.speech.tts.BlockingAudioTrack.mIsShortUtterance:Z
11: aload 1
invokevirtual android.media.AudioTrack.stop:()V
12: StackMap locals:
StackMap stack:
aload 0
getfield android.speech.tts.BlockingAudioTrack.mStopped:Z
ifne 14
13: aload 0
aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrack:Landroid/media/AudioTrack;
invokevirtual android.speech.tts.BlockingAudioTrack.blockUntilDone:(Landroid/media/AudioTrack;)V
14: StackMap locals:
StackMap stack:
aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrackLock:Ljava/lang/Object;
dup
astore 2
monitorenter
15: aload 0
aconst_null
putfield android.speech.tts.BlockingAudioTrack.mAudioTrack:Landroid/media/AudioTrack;
16: aload 2
monitorexit
17: goto 20
StackMap locals: android.speech.tts.BlockingAudioTrack android.media.AudioTrack java.lang.Object
StackMap stack: java.lang.Throwable
18: aload 2
monitorexit
19: athrow
20: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.media.AudioTrack.release:()V
21: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Landroid/speech/tts/BlockingAudioTrack;
1 22 1 track Landroid/media/AudioTrack;
Exception table:
from to target type
2 4 5 any
5 6 5 any
15 17 18 any
18 19 18 any
static int getChannelConfig(int);
descriptor: (I)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
iconst_1
if_icmpne 2
1: iconst_4
ireturn
2: StackMap locals:
StackMap stack:
iload 0
iconst_2
if_icmpne 4
3: bipush 12
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 channelCount I
MethodParameters:
Name Flags
channelCount
long getAudioLengthMs(int);
descriptor: (I)J
flags: (0x0000)
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield android.speech.tts.BlockingAudioTrack.mBytesPerFrame:I
idiv
istore 2
start local 2 1: iload 2
sipush 1000
imul
aload 0
getfield android.speech.tts.BlockingAudioTrack.mSampleRateInHz:I
idiv
i2l
lstore 3
start local 3 2: lload 3
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/speech/tts/BlockingAudioTrack;
0 3 1 numBytes I
1 3 2 unconsumedFrames I
2 3 3 estimatedTimeMs J
MethodParameters:
Name Flags
numBytes
private static int writeToAudioTrack(android.media.AudioTrack, byte[]);
descriptor: (Landroid/media/AudioTrack;[B)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.media.AudioTrack.getPlayState:()I
iconst_3
if_icmpeq 2
1: aload 0
invokevirtual android.media.AudioTrack.play:()V
2: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 3: goto 8
4: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 2
aload 1
arraylength
invokevirtual android.media.AudioTrack.write:([BII)I
istore 3
start local 3 5: iload 3
ifgt 7
6: goto 9
7: StackMap locals: int
StackMap stack:
iload 2
iload 3
iadd
istore 2
end local 3 8: StackMap locals:
StackMap stack:
iload 2
aload 1
arraylength
if_icmplt 4
9: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 audioTrack Landroid/media/AudioTrack;
0 10 1 bytes [B
3 10 2 count I
5 8 3 written I
MethodParameters:
Name Flags
audioTrack
bytes
private android.media.AudioTrack createStreamingAudioTrack();
descriptor: ()Landroid/media/AudioTrack;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=1
start local 0 0: aload 0
getfield android.speech.tts.BlockingAudioTrack.mChannelCount:I
invokestatic android.speech.tts.BlockingAudioTrack.getChannelConfig:(I)I
istore 1
start local 1 1: aload 0
getfield android.speech.tts.BlockingAudioTrack.mSampleRateInHz:I
iload 1
aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioFormat:I
invokestatic android.media.AudioTrack.getMinBufferSize:(III)I
2: istore 2
start local 2 3: sipush 8192
iload 2
invokestatic java.lang.Math.max:(II)I
istore 3
start local 3 4: new android.media.AudioFormat$Builder
dup
invokespecial android.media.AudioFormat$Builder.<init>:()V
5: iload 1
invokevirtual android.media.AudioFormat$Builder.setChannelMask:(I)Landroid/media/AudioFormat$Builder;
6: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioFormat:I
invokevirtual android.media.AudioFormat$Builder.setEncoding:(I)Landroid/media/AudioFormat$Builder;
7: aload 0
getfield android.speech.tts.BlockingAudioTrack.mSampleRateInHz:I
invokevirtual android.media.AudioFormat$Builder.setSampleRate:(I)Landroid/media/AudioFormat$Builder;
invokevirtual android.media.AudioFormat$Builder.build:()Landroid/media/AudioFormat;
8: astore 4
start local 4 9: new android.media.AudioTrack
dup
aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioParams:Landroid/speech/tts/TextToSpeechService$AudioOutputParams;
getfield android.speech.tts.TextToSpeechService$AudioOutputParams.mAudioAttributes:Landroid/media/AudioAttributes;
10: aload 4
iload 3
iconst_1
11: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioParams:Landroid/speech/tts/TextToSpeechService$AudioOutputParams;
getfield android.speech.tts.TextToSpeechService$AudioOutputParams.mSessionId:I
12: invokespecial android.media.AudioTrack.<init>:(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;III)V
astore 5
start local 5 13: aload 5
invokevirtual android.media.AudioTrack.getState:()I
iconst_1
if_icmpeq 17
14: ldc "TTS.BlockingAudioTrack"
ldc "Unable to create audio track."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
15: aload 5
invokevirtual android.media.AudioTrack.release:()V
16: aconst_null
areturn
17: StackMap locals: android.speech.tts.BlockingAudioTrack int int int android.media.AudioFormat android.media.AudioTrack
StackMap stack:
aload 0
iload 3
putfield android.speech.tts.BlockingAudioTrack.mAudioBufferSize:I
18: aload 5
aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioParams:Landroid/speech/tts/TextToSpeechService$AudioOutputParams;
getfield android.speech.tts.TextToSpeechService$AudioOutputParams.mVolume:F
aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioParams:Landroid/speech/tts/TextToSpeechService$AudioOutputParams;
getfield android.speech.tts.TextToSpeechService$AudioOutputParams.mPan:F
invokestatic android.speech.tts.BlockingAudioTrack.setupVolume:(Landroid/media/AudioTrack;FF)V
19: aload 5
areturn
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 20 0 this Landroid/speech/tts/BlockingAudioTrack;
1 20 1 channelConfig I
3 20 2 minBufferSizeInBytes I
4 20 3 bufferSizeInBytes I
9 20 4 audioFormat Landroid/media/AudioFormat;
13 20 5 audioTrack Landroid/media/AudioTrack;
private void blockUntilDone(android.media.AudioTrack);
descriptor: (Landroid/media/AudioTrack;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.speech.tts.BlockingAudioTrack.mBytesWritten:I
ifgt 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield android.speech.tts.BlockingAudioTrack.mIsShortUtterance:Z
ifeq 5
3: aload 0
invokevirtual android.speech.tts.BlockingAudioTrack.blockUntilEstimatedCompletion:()V
4: goto 6
5: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual android.speech.tts.BlockingAudioTrack.blockUntilCompletion:(Landroid/media/AudioTrack;)V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/speech/tts/BlockingAudioTrack;
0 7 1 audioTrack Landroid/media/AudioTrack;
MethodParameters:
Name Flags
audioTrack
private void blockUntilEstimatedCompletion();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield android.speech.tts.BlockingAudioTrack.mBytesWritten:I
aload 0
getfield android.speech.tts.BlockingAudioTrack.mBytesPerFrame:I
idiv
istore 1
start local 1 1: iload 1
sipush 1000
imul
aload 0
getfield android.speech.tts.BlockingAudioTrack.mSampleRateInHz:I
idiv
i2l
lstore 2
start local 2 2: lload 2
invokestatic java.lang.Thread.sleep:(J)V
3: goto 5
StackMap locals: android.speech.tts.BlockingAudioTrack int long
StackMap stack: java.lang.InterruptedException
4: pop
5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/speech/tts/BlockingAudioTrack;
1 6 1 lengthInFrames I
2 6 2 estimatedTimeMs J
Exception table:
from to target type
2 3 4 Class java.lang.InterruptedException
private void blockUntilCompletion(android.media.AudioTrack);
descriptor: (Landroid/media/AudioTrack;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=2
start local 0 start local 1 0: aload 0
getfield android.speech.tts.BlockingAudioTrack.mBytesWritten:I
aload 0
getfield android.speech.tts.BlockingAudioTrack.mBytesPerFrame:I
idiv
istore 2
start local 2 1: iconst_m1
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: lconst_0
lstore 5
start local 5 4: goto 20
5: StackMap locals: android.speech.tts.BlockingAudioTrack android.media.AudioTrack int int int long
StackMap stack:
iload 2
iload 4
isub
sipush 1000
imul
6: aload 1
invokevirtual android.media.AudioTrack.getSampleRate:()I
7: idiv
i2l
lstore 7
start local 7 8: lload 7
ldc 20
ldc 2500
invokestatic android.speech.tts.BlockingAudioTrack.clip:(JJJ)J
lstore 9
start local 9 9: iload 4
iload 3
if_icmpne 14
10: lload 5
lload 9
ladd
lstore 5
11: lload 5
ldc 2500
lcmp
ifle 15
12: ldc "TTS.BlockingAudioTrack"
ldc "Waited unsuccessfully for 2500ms for AudioTrack to make progress, Aborting"
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
13: goto 22
14: StackMap locals: long long
StackMap stack:
lconst_0
lstore 5
15: StackMap locals:
StackMap stack:
iload 4
istore 3
16: lload 9
invokestatic java.lang.Thread.sleep:(J)V
17: goto 20
StackMap locals:
StackMap stack: java.lang.InterruptedException
18: pop
19: goto 22
end local 9 end local 7 20: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.media.AudioTrack.getPlaybackHeadPosition:()I
dup
istore 4
iload 2
if_icmpge 22
21: aload 1
invokevirtual android.media.AudioTrack.getPlayState:()I
iconst_3
if_icmpne 22
aload 0
getfield android.speech.tts.BlockingAudioTrack.mStopped:Z
ifeq 5
22: 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 23 0 this Landroid/speech/tts/BlockingAudioTrack;
0 23 1 audioTrack Landroid/media/AudioTrack;
1 23 2 lengthInFrames I
2 23 3 previousPosition I
3 23 4 currentPosition I
4 23 5 blockedTimeMs J
8 20 7 estimatedTimeMs J
9 20 9 sleepTimeMs J
Exception table:
from to target type
16 17 18 Class java.lang.InterruptedException
MethodParameters:
Name Flags
audioTrack
private static void setupVolume(android.media.AudioTrack, float, float);
descriptor: (Landroid/media/AudioTrack;FF)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: fload 1
fconst_0
fconst_1
invokestatic android.speech.tts.BlockingAudioTrack.clip:(FFF)F
fstore 3
start local 3 1: fload 2
ldc -1.0
fconst_1
invokestatic android.speech.tts.BlockingAudioTrack.clip:(FFF)F
fstore 4
start local 4 2: fload 3
fstore 5
start local 5 3: fload 3
fstore 6
start local 6 4: fload 4
fconst_0
fcmpl
ifle 7
5: fload 5
fconst_1
fload 4
fsub
fmul
fstore 5
6: goto 9
StackMap locals: android.media.AudioTrack float float float float float float
StackMap stack:
7: fload 4
fconst_0
fcmpg
ifge 9
8: fload 6
fconst_1
fload 4
fadd
fmul
fstore 6
9: StackMap locals:
StackMap stack:
aload 0
fload 5
fload 6
invokevirtual android.media.AudioTrack.setStereoVolume:(FF)I
ifeq 11
10: ldc "TTS.BlockingAudioTrack"
ldc "Failed to set volume"
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
11: StackMap locals:
StackMap stack:
return
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 12 0 audioTrack Landroid/media/AudioTrack;
0 12 1 volume F
0 12 2 pan F
1 12 3 vol F
2 12 4 panning F
3 12 5 volLeft F
4 12 6 volRight F
MethodParameters:
Name Flags
audioTrack
volume
pan
private static final long clip(long, long, long);
descriptor: (JJJ)J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=4, locals=6, args_size=3
start local 0 start local 2 start local 4 0: lload 0
lload 2
lcmp
ifge 1
lload 2
goto 3
StackMap locals:
StackMap stack:
1: lload 0
lload 4
lcmp
ifge 2
lload 0
goto 3
StackMap locals:
StackMap stack:
2: lload 4
StackMap locals:
StackMap stack: long
3: lreturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 value J
0 4 2 min J
0 4 4 max J
MethodParameters:
Name Flags
value
min
max
private static final float clip(float, float, float);
descriptor: (FFF)F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: fload 0
fload 1
fcmpg
ifge 1
fload 1
goto 3
StackMap locals:
StackMap stack:
1: fload 0
fload 2
fcmpg
ifge 2
fload 0
goto 3
StackMap locals:
StackMap stack:
2: fload 2
StackMap locals:
StackMap stack: float
3: freturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 value F
0 4 1 min F
0 4 2 max F
MethodParameters:
Name Flags
value
min
max
public void setPlaybackPositionUpdateListener(android.media.AudioTrack$OnPlaybackPositionUpdateListener);
descriptor: (Landroid/media/AudioTrack$OnPlaybackPositionUpdateListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrackLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrack:Landroid/media/AudioTrack;
ifnull 3
2: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrack:Landroid/media/AudioTrack;
aload 1
invokevirtual android.media.AudioTrack.setPlaybackPositionUpdateListener:(Landroid/media/AudioTrack$OnPlaybackPositionUpdateListener;)V
3: StackMap locals: java.lang.Object
StackMap stack:
aload 2
monitorexit
4: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/speech/tts/BlockingAudioTrack;
0 8 1 listener Landroid/media/AudioTrack$OnPlaybackPositionUpdateListener;
Exception table:
from to target type
1 4 5 any
5 6 5 any
MethodParameters:
Name Flags
listener
public void setNotificationMarkerPosition(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrackLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrack:Landroid/media/AudioTrack;
ifnull 3
2: aload 0
getfield android.speech.tts.BlockingAudioTrack.mAudioTrack:Landroid/media/AudioTrack;
iload 1
invokevirtual android.media.AudioTrack.setNotificationMarkerPosition:(I)I
pop
3: StackMap locals: java.lang.Object
StackMap stack:
aload 2
monitorexit
4: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/speech/tts/BlockingAudioTrack;
0 8 1 frames I
Exception table:
from to target type
1 4 5 any
5 6 5 any
MethodParameters:
Name Flags
frames
}
SourceFile: "BlockingAudioTrack.java"
InnerClasses:
public Builder = android.media.AudioFormat$Builder of android.media.AudioFormat
public abstract OnPlaybackPositionUpdateListener = android.media.AudioTrack$OnPlaybackPositionUpdateListener of android.media.AudioTrack
AudioOutputParams = android.speech.tts.TextToSpeechService$AudioOutputParams of android.speech.tts.TextToSpeechService