From aad5927a2bc7e42d31372cb6020ae5f5b718a041 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Tue, 20 Mar 2018 02:40:48 -0700 Subject: [PATCH] Update audio renderer position before pausing As part of pausing DefaultAudioSink, its position-related fields are reset. If the audio timestamp API was in use, this results in falling back to the getPlaybackHeadPosition API, which (on some devices) can lead to a jump in the reported position. Sample the position before pausing instead of after, to avoid this jump. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=189713376 --- .../android/exoplayer2/audio/MediaCodecAudioRenderer.java | 2 +- .../android/exoplayer2/audio/SimpleDecoderAudioRenderer.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java index 54a8257083..c73081e2ab 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java @@ -393,8 +393,8 @@ public class MediaCodecAudioRenderer extends MediaCodecRenderer implements Media @Override protected void onStopped() { - audioSink.pause(); updateCurrentPosition(); + audioSink.pause(); super.onStopped(); } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/SimpleDecoderAudioRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/SimpleDecoderAudioRenderer.java index 1a23c41262..89560f2977 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/SimpleDecoderAudioRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/SimpleDecoderAudioRenderer.java @@ -522,8 +522,8 @@ public abstract class SimpleDecoderAudioRenderer extends BaseRenderer implements @Override protected void onStopped() { - audioSink.pause(); updateCurrentPosition(); + audioSink.pause(); } @Override