Merge "API to query recording format and device on AudioRecordConfiguration"
diff --git a/api/current.txt b/api/current.txt
index 52cec47..f0a528f 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -19896,8 +19896,11 @@
public class AudioRecordConfiguration implements android.os.Parcelable {
method public int describeContents();
- method public int getAudioSessionId();
+ method public android.media.AudioDeviceInfo getAudioDevice();
+ method public int getClientAudioSessionId();
method public int getClientAudioSource();
+ method public android.media.AudioFormat getClientFormat();
+ method public android.media.AudioFormat getFormat();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator<android.media.AudioRecordConfiguration> CREATOR;
}
diff --git a/api/system-current.txt b/api/system-current.txt
index e50b303..904f033 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -21020,8 +21020,11 @@
public class AudioRecordConfiguration implements android.os.Parcelable {
method public int describeContents();
- method public int getAudioSessionId();
+ method public android.media.AudioDeviceInfo getAudioDevice();
+ method public int getClientAudioSessionId();
method public int getClientAudioSource();
+ method public android.media.AudioFormat getClientFormat();
+ method public android.media.AudioFormat getFormat();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator<android.media.AudioRecordConfiguration> CREATOR;
}
diff --git a/api/test-current.txt b/api/test-current.txt
index 13e60bd..3a7210a 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -19905,8 +19905,11 @@
public class AudioRecordConfiguration implements android.os.Parcelable {
method public int describeContents();
- method public int getAudioSessionId();
+ method public android.media.AudioDeviceInfo getAudioDevice();
+ method public int getClientAudioSessionId();
method public int getClientAudioSource();
+ method public android.media.AudioFormat getClientFormat();
+ method public android.media.AudioFormat getFormat();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator<android.media.AudioRecordConfiguration> CREATOR;
}
diff --git a/media/java/android/media/AudioRecordConfiguration.java b/media/java/android/media/AudioRecordConfiguration.java
index c7d219d..69df88f 100644
--- a/media/java/android/media/AudioRecordConfiguration.java
+++ b/media/java/android/media/AudioRecordConfiguration.java
@@ -23,7 +23,7 @@
/**
* The AudioRecordConfiguration class collects the information describing an audio recording
- * session. This information is returned through the
+ * session. This information is returned through the
* {@link AudioManager#getActiveRecordConfigurations()} method.
*
*/
@@ -33,12 +33,32 @@
private final int mClientSource;
+ private final AudioFormat mDeviceFormat;
+ private final AudioFormat mClientFormat;
+
+ private final AudioDeviceInfo mRecDevice;
+
/**
* @hide
*/
public AudioRecordConfiguration(int session, int source) {
mSessionId = session;
mClientSource = source;
+ mDeviceFormat = new AudioFormat.Builder().build();
+ mClientFormat = new AudioFormat.Builder().build();
+ mRecDevice = null;
+ }
+
+ /**
+ * @hide
+ */
+ public AudioRecordConfiguration(int session, int source, AudioFormat devFormat,
+ AudioFormat clientFormat, AudioDeviceInfo device) {
+ mSessionId = session;
+ mClientSource = source;
+ mDeviceFormat = devFormat;
+ mClientFormat = clientFormat;
+ mRecDevice = device;
}
/**
@@ -57,7 +77,28 @@
* Returns the session number of the recording, see {@link AudioRecord#getAudioSessionId()}.
* @return the session number.
*/
- public int getAudioSessionId() { return mSessionId; }
+ public int getClientAudioSessionId() { return mSessionId; }
+
+ /**
+ * Returns the audio format at which audio is recorded on this Android device.
+ * Note that it may differ from the client application recording format
+ * (see {@link #getClientFormat()}).
+ * @return the device recording format
+ */
+ public AudioFormat getFormat() { return mDeviceFormat; }
+
+ /**
+ * Returns the audio format at which the client application is recording audio.
+ * Note that it may differ from the actual recording format (see {@link #getFormat()}).
+ * @return the recording format
+ */
+ public AudioFormat getClientFormat() { return mClientFormat; }
+
+ /**
+ * Returns the audio input device used for this recording.
+ * @return the audio recording device
+ */
+ public AudioDeviceInfo getAudioDevice() { return mRecDevice; }
public static final Parcelable.Creator<AudioRecordConfiguration> CREATOR
= new Parcelable.Creator<AudioRecordConfiguration>() {
@@ -93,6 +134,9 @@
private AudioRecordConfiguration(Parcel in) {
mSessionId = in.readInt();
mClientSource = in.readInt();
+ mDeviceFormat = new AudioFormat.Builder().build();
+ mClientFormat = new AudioFormat.Builder().build();
+ mRecDevice = null;
}
@Override