Check keepAlive before calling nativeDataIsRecording (reland)

Restores work done in https://chromium-review.googlesource.com/c/external/webrtc/+/613501
which was accidently removed.

TBR=glaznev

Bug: b/64174142
Change-Id: I518a5b10d0ece5fd93bae02811789edaf1d70456
Reviewed-on: https://webrtc-review.googlesource.com/37083
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21490}
This commit is contained in:
henrika 2018-01-04 10:13:55 +01:00 committed by Commit Bot
parent 81d2e3d6bd
commit 3b116ad3d8

View File

@ -106,7 +106,12 @@ public class WebRtcAudioRecord {
byteBuffer.clear();
byteBuffer.put(emptyBytes);
}
nativeDataIsRecorded(bytesRead, nativeAudioRecord);
// It's possible we've been shut down during the read, and stopRecording() tried and
// failed to join this thread. To be a bit safer, try to avoid calling any native methods
// in case they've been unregistered after stopRecording() returned.
if (keepAlive) {
nativeDataIsRecorded(bytesRead, nativeAudioRecord);
}
} else {
String errorMessage = "AudioRecord.read failed: " + bytesRead;
Logging.e(TAG, errorMessage);