Resolves crash in AudioTrack.flush() on Android.
BUG=b/65286737
Review-Url: https://codereview.webrtc.org/3010973002
Cr-Original-Commit-Position: refs/heads/master@{#19706}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 789825c42d2d93763b7d54454cd46e502c037592
diff --git a/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java b/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java
index 6800a7c..ab55567 100644
--- a/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java
+++ b/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java
@@ -173,12 +173,14 @@
// Stops playing the audio data. Since the instance was created in
// MODE_STREAM mode, audio will stop playing after the last buffer that
// was written has been played.
- final AudioTrack at = audioTrack;
- if (at != null) {
+ if (audioTrack != null) {
Logging.d(TAG, "Stopping the audio track...");
- at.stop();
- Logging.d(TAG, "The audio track has now been stopped.");
- at.flush();
+ try {
+ audioTrack.stop();
+ Logging.d(TAG, "The audio track has now been stopped.");
+ } catch (IllegalStateException e) {
+ Logging.e(TAG, "AudioTrack.stop failed: " + e.getMessage());
+ }
}
}