summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorAndy Hung <hunga@google.com>2015-06-12 23:02:03 -0700
committerAndy Hung <hunga@google.com>2015-06-17 08:43:43 -0700
commit2d2d89363f0b794cbb63f389584fa4c5557ff51a (patch)
tree2da4b44da81a8496336fcd30c39f121cc4b92424 /media
parente244922ababf64fbac64c2ab375de54fa3a83f0a (diff)
downloadframeworks_base-2d2d89363f0b794cbb63f389584fa4c5557ff51a.zip
frameworks_base-2d2d89363f0b794cbb63f389584fa4c5557ff51a.tar.gz
frameworks_base-2d2d89363f0b794cbb63f389584fa4c5557ff51a.tar.bz2
AudioTrack.Builder should throw exception on failure.
Should throw UnsupportedOperationException instead of returning an uninitialized track object. Bug: 21890643 Change-Id: I34df73b316fcb490be05eb3beff06b795645fd4c
Diffstat (limited to 'media')
-rw-r--r--media/java/android/media/AudioTrack.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java
index f395cb3..62810c6 100644
--- a/media/java/android/media/AudioTrack.java
+++ b/media/java/android/media/AudioTrack.java
@@ -661,9 +661,10 @@ public class AudioTrack
/**
* Builds an {@link AudioTrack} instance initialized with all the parameters set
* on this <code>Builder</code>.
- * @return a new {@link AudioTrack} instance.
+ * @return a new successfully initialized {@link AudioTrack} instance.
* @throws UnsupportedOperationException if the parameters set on the <code>Builder</code>
- * were incompatible, or if they are not supported by the device.
+ * were incompatible, or if they are not supported by the device,
+ * or if the device was not available.
*/
public @NonNull AudioTrack build() throws UnsupportedOperationException {
if (mAttributes == null) {
@@ -686,7 +687,13 @@ public class AudioTrack
mBufferSizeInBytes = mFormat.getChannelCount()
* mFormat.getBytesPerSample(mFormat.getEncoding());
}
- return new AudioTrack(mAttributes, mFormat, mBufferSizeInBytes, mMode, mSessionId);
+ final AudioTrack track = new AudioTrack(
+ mAttributes, mFormat, mBufferSizeInBytes, mMode, mSessionId);
+ if (track.getState() == STATE_UNINITIALIZED) {
+ // release is not necessary
+ throw new UnsupportedOperationException("Cannot create AudioTrack");
+ }
+ return track;
} catch (IllegalArgumentException e) {
throw new UnsupportedOperationException(e.getMessage());
}