diff options
| -rw-r--r-- | media/java/android/media/AudioAttributes.java | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/media/java/android/media/AudioAttributes.java b/media/java/android/media/AudioAttributes.java index a3bbdfcb2627..5286f8fa5ad3 100644 --- a/media/java/android/media/AudioAttributes.java +++ b/media/java/android/media/AudioAttributes.java @@ -225,9 +225,20 @@ public final class AudioAttributes implements Parcelable { public final static int FLAG_BYPASS_MUTE = 0x1 << 7; /** - * Flag requesting a low latency path. + * Flag requesting a low latency path when creating an AudioTrack. * When using this flag, the sample rate must match the native sample rate * of the device. Effects processing is also unavailable. + * + * Note that if this flag is used without specifying a bufferSizeInBytes then the + * AudioTrack's actual buffer size may be too small. It is recommended that a fairly + * large buffer should be specified when the AudioTrack is created. + * Then the actual size can be reduced by calling + * {@link AudioTrack#setBufferSizeInFrames(int)}. The buffer size can be optimized + * by lowering it after each write() call until the audio glitches, which is detected by calling + * {@link AudioTrack#getUnderrunCount()}. Then the buffer size can be increased + * until there are no glitches. + * This tuning step should be done while playing silence. + * This technique provides a compromise between latency and glitch rate. */ public final static int FLAG_LOW_LATENCY = 0x1 << 8; |