From aff8c04b25364bdfbcfc719d75057ded46edc225 Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Thu, 21 Mar 2019 14:29:56 -0700 Subject: [PATCH] MediaRecorder: Add IntDef to setAudioSource Bug: 128414080 Test: make Change-Id: I1f0b5c75becf89e995fb33f85a79c834d5fa9625 --- media/java/android/media/AudioRecord.java | 3 ++- media/java/android/media/MediaRecorder.java | 23 +++++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/media/java/android/media/AudioRecord.java b/media/java/android/media/AudioRecord.java index 8051236680aac..31890e6c533b4 100644 --- a/media/java/android/media/AudioRecord.java +++ b/media/java/android/media/AudioRecord.java @@ -25,6 +25,7 @@ import android.annotation.SystemApi; import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.app.ActivityThread; +import android.media.MediaRecorder.Source; import android.media.audiopolicy.AudioMix; import android.media.audiopolicy.AudioPolicy; import android.media.projection.MediaProjection; @@ -539,7 +540,7 @@ public class AudioRecord implements AudioRouting, MicrophoneDirection, * @return the same Builder instance. * @throws IllegalArgumentException */ - public Builder setAudioSource(int source) throws IllegalArgumentException { + public Builder setAudioSource(@Source int source) throws IllegalArgumentException { Preconditions.checkState( mAudioPlaybackCaptureConfiguration == null, ERROR_MESSAGE_SOURCE_MISMATCH); diff --git a/media/java/android/media/MediaRecorder.java b/media/java/android/media/MediaRecorder.java index e7b4752701fb0..34502a8ca74f3 100644 --- a/media/java/android/media/MediaRecorder.java +++ b/media/java/android/media/MediaRecorder.java @@ -18,6 +18,7 @@ package android.media; import android.annotation.CallbackExecutor; import android.annotation.FloatRange; +import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; @@ -42,6 +43,8 @@ import java.io.File; import java.io.FileDescriptor; import java.io.IOException; import java.io.RandomAccessFile; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; @@ -355,6 +358,22 @@ public class MediaRecorder implements AudioRouting, public static final int HOTWORD = 1999; } + /** @hide */ + @IntDef({ + AudioSource.DEFAULT, + AudioSource.MIC, + AudioSource.VOICE_UPLINK, + AudioSource.VOICE_DOWNLINK, + AudioSource.VOICE_CALL, + AudioSource.CAMCORDER, + AudioSource.VOICE_RECOGNITION, + AudioSource.VOICE_COMMUNICATION, + AudioSource.UNPROCESSED, + AudioSource.VOICE_PERFORMANCE, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface Source {} + // TODO make AudioSource static (API change) and move this method inside the AudioSource class /** * @hide @@ -547,11 +566,11 @@ public class MediaRecorder implements AudioRouting, * to be specified before setting recording-parameters or encoders. Call * this only before setOutputFormat(). * - * @param audio_source the audio source to use + * @param audioSource the audio source to use * @throws IllegalStateException if it is called after setOutputFormat() * @see android.media.MediaRecorder.AudioSource */ - public native void setAudioSource(int audio_source) + public native void setAudioSource(@Source int audioSource) throws IllegalStateException; /**