summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorAndy Hung <hunga@google.com>2015-06-12 22:49:15 -0700
committerAndy Hung <hunga@google.com>2015-06-17 08:40:53 -0700
commite244922ababf64fbac64c2ab375de54fa3a83f0a (patch)
treefd4d41dceff1a8861c22dcfba3666a0670b8fd1c /media
parent23a6262fe9d2e23cfb49cbfbf6595485bb329438 (diff)
downloadframeworks_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.java15
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());
}