mirror of
https://github.com/androidx/media.git
synced 2025-05-05 14:40:50 +08:00
Ensure the SilenceMediaSource position is in range
Issue: #6229 PiperOrigin-RevId: 260500986
This commit is contained in:
parent
d279c3d281
commit
f5980a54a3
@ -14,6 +14,8 @@
|
||||
([#6153](https://github.com/google/ExoPlayer/issues/6153)).
|
||||
* Fix `DataSchemeDataSource` re-opening and range requests
|
||||
([#6192](https://github.com/google/ExoPlayer/issues/6192)).
|
||||
* Ensure the `SilenceMediaSource` position is in range
|
||||
([#6229](https://github.com/google/ExoPlayer/issues/6229)).
|
||||
* Flac extension: Parse `VORBIS_COMMENT` metadata
|
||||
([#5527](https://github.com/google/ExoPlayer/issues/5527)).
|
||||
|
||||
|
@ -118,6 +118,7 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
||||
@NullableType SampleStream[] streams,
|
||||
boolean[] streamResetFlags,
|
||||
long positionUs) {
|
||||
positionUs = constrainSeekPosition(positionUs);
|
||||
for (int i = 0; i < selections.length; i++) {
|
||||
if (streams[i] != null && (selections[i] == null || !mayRetainStreamFlags[i])) {
|
||||
sampleStreams.remove(streams[i]);
|
||||
@ -144,6 +145,7 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
||||
|
||||
@Override
|
||||
public long seekToUs(long positionUs) {
|
||||
positionUs = constrainSeekPosition(positionUs);
|
||||
for (int i = 0; i < sampleStreams.size(); i++) {
|
||||
((SilenceSampleStream) sampleStreams.get(i)).seekTo(positionUs);
|
||||
}
|
||||
@ -152,7 +154,7 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
||||
|
||||
@Override
|
||||
public long getAdjustedSeekPositionUs(long positionUs, SeekParameters seekParameters) {
|
||||
return positionUs;
|
||||
return constrainSeekPosition(positionUs);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -172,6 +174,10 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
||||
|
||||
@Override
|
||||
public void reevaluateBuffer(long positionUs) {}
|
||||
|
||||
private long constrainSeekPosition(long positionUs) {
|
||||
return Util.constrainValue(positionUs, 0, durationUs);
|
||||
}
|
||||
}
|
||||
|
||||
private static final class SilenceSampleStream implements SampleStream {
|
||||
@ -187,7 +193,7 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
||||
}
|
||||
|
||||
public void seekTo(long positionUs) {
|
||||
positionBytes = getAudioByteCount(positionUs);
|
||||
positionBytes = Util.constrainValue(getAudioByteCount(positionUs), 0, durationBytes);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
x
Reference in New Issue
Block a user