Avoids update of WebRTC.Audio.SourceMatchesRecordingSession for Android < N
Before this change we always logged false in WebRTC.Audio.SourceMatchesRecordingSession even when a test had not been executed (happens e.g. for Android < N). This issue is now fixed and we only update WebRTC.Audio.SourceMatchesRecordingSession if a valid test has been performed. No-Try: True TBR: glaznev Bug: webrtc:10971 Change-Id: I907197476f00b812c67bb71e8fdcd6f297cfbdee Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154563 Commit-Queue: Henrik Andreassson <henrika@webrtc.org> Reviewed-by: Henrik Andreassson <henrika@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29324}
This commit is contained in:
@ -93,7 +93,7 @@ class WebRtcAudioRecord {
|
||||
|
||||
private volatile boolean microphoneMute;
|
||||
private boolean audioSourceMatchesRecordingSession;
|
||||
private boolean audioConfigHasBeenVerified;
|
||||
private boolean isAudioConfigVerified;
|
||||
private byte[] emptyBytes;
|
||||
|
||||
private final @Nullable AudioRecordErrorCallback errorCallback;
|
||||
@ -221,13 +221,20 @@ class WebRtcAudioRecord {
|
||||
return isNoiseSuppressorSupported;
|
||||
}
|
||||
|
||||
// Returns true if a valid call to verifyAudioConfig() has been done. Should always be
|
||||
// checked before using the returned value of isAudioSourceMatchingRecordingSession().
|
||||
@CalledByNative
|
||||
boolean isAudioConfigVerified() {
|
||||
return isAudioConfigVerified;
|
||||
}
|
||||
|
||||
// Returns true if verifyAudioConfig() succeeds. This value is set after a specific delay when
|
||||
// startRecording() has been called. Hence, should preferably be called in combination with
|
||||
// stopRecording() to ensure that it has been set properly. |audioConfigHasBeenChecked| is
|
||||
// stopRecording() to ensure that it has been set properly. |isAudioConfigVerified| is
|
||||
// enabled in WebRtcAudioRecord to ensure that the returned value is valid.
|
||||
@CalledByNative
|
||||
boolean isAudioSourceMatchingRecordingSession() {
|
||||
if (!audioConfigHasBeenVerified) {
|
||||
if (!isAudioConfigVerified) {
|
||||
Logging.w(TAG, "Audio configuration has not yet been verified");
|
||||
return false;
|
||||
}
|
||||
@ -434,7 +441,7 @@ class WebRtcAudioRecord {
|
||||
audioSourceMatchesRecordingSession =
|
||||
verifyAudioConfig(audioRecord.getAudioSource(), audioRecord.getAudioSessionId(),
|
||||
audioRecord.getFormat(), audioRecord.getRoutedDevice(), configs);
|
||||
audioConfigHasBeenVerified = true;
|
||||
isAudioConfigVerified = true;
|
||||
}
|
||||
}
|
||||
return numActiveRecordingSessions;
|
||||
|
||||
Reference in New Issue
Block a user