Audio record notification: only report SDK recording sources
Bug 22876530 Change-Id: I7575170ee2d7414c8bf9a04a9adc936b66c33e15
This commit is contained in:
@@ -277,6 +277,30 @@ public class MediaRecorder
|
||||
public static final int HOTWORD = 1999;
|
||||
}
|
||||
|
||||
// TODO make AudioSource static (API change) and move this method inside the AudioSource class
|
||||
/**
|
||||
* @hide
|
||||
* @param source An audio source to test
|
||||
* @return true if the source is only visible to system components
|
||||
*/
|
||||
public static boolean isSystemOnlyAudioSource(int source) {
|
||||
switch(source) {
|
||||
case AudioSource.DEFAULT:
|
||||
case AudioSource.MIC:
|
||||
case AudioSource.VOICE_UPLINK:
|
||||
case AudioSource.VOICE_DOWNLINK:
|
||||
case AudioSource.VOICE_CALL:
|
||||
case AudioSource.CAMCORDER:
|
||||
case AudioSource.VOICE_RECOGNITION:
|
||||
case AudioSource.VOICE_COMMUNICATION:
|
||||
//case REMOTE_SUBMIX: considered "system" as it requires system permissions
|
||||
case AudioSource.UNPROCESSED:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines the video source. These constants are used with
|
||||
* {@link MediaRecorder#setVideoSource(int)}.
|
||||
|
||||
@@ -20,6 +20,7 @@ import android.media.AudioManager;
|
||||
import android.media.AudioRecordConfiguration;
|
||||
import android.media.AudioSystem;
|
||||
import android.media.IRecordingConfigDispatcher;
|
||||
import android.media.MediaRecorder;
|
||||
import android.os.IBinder;
|
||||
import android.os.RemoteException;
|
||||
import android.util.Log;
|
||||
@@ -48,6 +49,9 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin
|
||||
* Implementation of android.media.AudioSystem.AudioRecordingCallback
|
||||
*/
|
||||
public void onRecordingConfigurationChanged(int event, int session, int source) {
|
||||
if (MediaRecorder.isSystemOnlyAudioSource(source)) {
|
||||
return;
|
||||
}
|
||||
if (updateSnapshot(event, session, source)) {
|
||||
final Iterator<RecMonitorClient> clientIterator = mClients.iterator();
|
||||
synchronized(mClients) {
|
||||
|
||||
Reference in New Issue
Block a user