diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/mp3/ConstantBitrateSeeker.java b/library/src/main/java/com/google/android/exoplayer/extractor/mp3/ConstantBitrateSeeker.java index db134089b9..bf83902410 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/mp3/ConstantBitrateSeeker.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/mp3/ConstantBitrateSeeker.java @@ -47,7 +47,8 @@ import com.google.android.exoplayer.C; @Override public long getTimeUs(long position) { - return ((position - firstFramePosition) * C.MICROS_PER_SECOND * BITS_PER_BYTE) / bitrate; + return (Math.max(0, position - firstFramePosition) * C.MICROS_PER_SECOND * BITS_PER_BYTE) + / bitrate; } @Override diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/mp3/XingSeeker.java b/library/src/main/java/com/google/android/exoplayer/extractor/mp3/XingSeeker.java index bc548f676c..bef49dfa89 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/mp3/XingSeeker.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/mp3/XingSeeker.java @@ -130,7 +130,7 @@ import com.google.android.exoplayer.util.Util; @Override public long getTimeUs(long position) { - if (!isSeekable()) { + if (!isSeekable() || position < firstFramePosition) { return 0L; } double offsetByte = 256.0 * (position - firstFramePosition) / sizeBytes;