diff options
author | Andy Hung <hunga@google.com> | 2015-06-12 22:49:15 -0700 |
---|---|---|
committer | Andy Hung <hunga@google.com> | 2015-06-17 08:40:53 -0700 |
commit | e244922ababf64fbac64c2ab375de54fa3a83f0a (patch) | |
tree | fd4d41dceff1a8861c22dcfba3666a0670b8fd1c /media | |
parent | 23a6262fe9d2e23cfb49cbfbf6595485bb329438 (diff) | |
download | frameworks_base-e244922ababf64fbac64c2ab375de54fa3a83f0a.zip frameworks_base-e244922ababf64fbac64c2ab375de54fa3a83f0a.tar.gz frameworks_base-e244922ababf64fbac64c2ab375de54fa3a83f0a.tar.bz2 |
AudioRecord.Builder should throw exception on failure.
Should throw UnsupportedOperationException instead of returning
an uninitialized record object.
Bug: 21890643
Change-Id: I9c05a4cff9f5e1d5513c76acace09699a567008f
Diffstat (limited to 'media')
-rw-r--r-- | media/java/android/media/AudioRecord.java | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/media/java/android/media/AudioRecord.java b/media/java/android/media/AudioRecord.java index 3cbc405..974b62e 100644 --- a/media/java/android/media/AudioRecord.java +++ b/media/java/android/media/AudioRecord.java @@ -527,10 +527,11 @@ public class AudioRecord } /** - * @return a new {@link AudioRecord} instance initialized with all the parameters set - * on this <code>Builder</code> + * @return a new {@link AudioRecord} instance successfully initialized with all + * the parameters set on this <code>Builder</code>. * @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 AudioRecord build() throws UnsupportedOperationException { if (mFormat == null) { @@ -564,7 +565,13 @@ public class AudioRecord mBufferSizeInBytes = mFormat.getChannelCount() * mFormat.getBytesPerSample(mFormat.getEncoding()); } - return new AudioRecord(mAttributes, mFormat, mBufferSizeInBytes, mSessionId); + final AudioRecord record = new AudioRecord( + mAttributes, mFormat, mBufferSizeInBytes, mSessionId); + if (record.getState() == STATE_UNINITIALIZED) { + // release is not necessary + throw new UnsupportedOperationException("Cannot create AudioRecord"); + } + return record; } catch (IllegalArgumentException e) { throw new UnsupportedOperationException(e.getMessage()); } |