From 789825c42d2d93763b7d54454cd46e502c037592 Mon Sep 17 00:00:00 2001 From: henrika Date: Wed, 6 Sep 2017 02:58:22 -0700 Subject: [PATCH] Resolves crash in AudioTrack.flush() on Android. BUG=b/65286737 Review-Url: https://codereview.webrtc.org/3010973002 Cr-Commit-Position: refs/heads/master@{#19706} --- .../src/org/webrtc/voiceengine/WebRtcAudioTrack.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java index 6800a7c023..ab55567b3c 100644 --- a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java +++ b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java @@ -173,12 +173,14 @@ public class WebRtcAudioTrack { // 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()); + } } }