summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media/java/android/media/AudioTrack.java20
1 files changed, 13 insertions, 7 deletions
diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java
index de2a7b2c15e3..fa6a4ff5af67 100644
--- a/media/java/android/media/AudioTrack.java
+++ b/media/java/android/media/AudioTrack.java
@@ -1263,14 +1263,20 @@ public class AudioTrack extends PlayerBase
// TODO: Check mEncapsulationMode compatibility with MODE_STATIC, etc?
- try {
- // If the buffer size is not specified in streaming mode,
- // use a single frame for the buffer size and let the
- // native code figure out the minimum buffer size.
- if (mMode == MODE_STREAM && mBufferSizeInBytes == 0) {
- mBufferSizeInBytes = mFormat.getChannelCount()
- * mFormat.getBytesPerSample(mFormat.getEncoding());
+ // If the buffer size is not specified in streaming mode,
+ // use a single frame for the buffer size and let the
+ // native code figure out the minimum buffer size.
+ if (mMode == MODE_STREAM && mBufferSizeInBytes == 0) {
+ int bytesPerSample = 1;
+ try {
+ bytesPerSample = mFormat.getBytesPerSample(mFormat.getEncoding());
+ } catch (IllegalArgumentException e) {
+ // do nothing
}
+ mBufferSizeInBytes = mFormat.getChannelCount() * bytesPerSample;
+ }
+
+ try {
final AudioTrack track = new AudioTrack(
mAttributes, mFormat, mBufferSizeInBytes, mMode, mSessionId, mOffload,
mEncapsulationMode, mTunerConfiguration);