diff --git a/src/main/java/org/thoughtcrime/securesms/audio/AudioSlidePlayer.java b/src/main/java/org/thoughtcrime/securesms/audio/AudioSlidePlayer.java index 375291bd5..46a05eabe 100644 --- a/src/main/java/org/thoughtcrime/securesms/audio/AudioSlidePlayer.java +++ b/src/main/java/org/thoughtcrime/securesms/audio/AudioSlidePlayer.java @@ -87,11 +87,14 @@ public class AudioSlidePlayer { public void onPlayerStateChanged(boolean playWhenReady, int playbackState) { if (playbackState == Player.STATE_READY) { Util.runOnMain(() -> { - Log.d(TAG, "request duration " + durationCalculator.getDuration()); - getListener().onReceivedDuration(Long.valueOf(durationCalculator.getDuration()).intValue()); - durationCalculator.release(); - durationCalculator.removeListener(this); - durationCalculator = null; + synchronized (AudioSlidePlayer.this) { + if (durationCalculator == null) return; + Log.d(TAG, "request duration " + durationCalculator.getDuration()); + getListener().onReceivedDuration(Long.valueOf(durationCalculator.getDuration()).intValue()); + durationCalculator.release(); + durationCalculator.removeListener(this); + durationCalculator = null; + } }); } }