diff options
author | Andy Hung <hunga@google.com> | 2015-06-12 23:02:03 -0700 |
---|---|---|
committer | Andy Hung <hunga@google.com> | 2015-06-17 08:43:43 -0700 |
commit | 2d2d89363f0b794cbb63f389584fa4c5557ff51a (patch) | |
tree | 2da4b44da81a8496336fcd30c39f121cc4b92424 /media | |
parent | e244922ababf64fbac64c2ab375de54fa3a83f0a (diff) | |
download | frameworks_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.java | 13 |
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()); } |