Disabled preloading when switching streams

pull/4246/head
Avently 2020-09-07 19:34:10 +03:00
rodzic a801d0994f
commit 31814b70da
4 zmienionych plików z 23 dodań i 0 usunięć

Wyświetl plik

@ -958,6 +958,9 @@ public class VideoDetailFragment
return;
}
setInitialData(sid, videoUrl, title, queue);
if (player != null) {
player.disablePreloadingOfCurrentTrack();
}
startLoading(false, true);
}

Wyświetl plik

@ -1410,6 +1410,11 @@ public abstract class BasePlayer implements
return currentMetadata;
}
@NonNull
public LoadController getLoadController() {
return (LoadController) loadControl;
}
@NonNull
public String getVideoUrl() {
return currentMetadata == null

Wyświetl plik

@ -1484,6 +1484,10 @@ public class VideoPlayerImpl extends VideoPlayer
}
}
public void disablePreloadingOfCurrentTrack() {
getLoadController().disablePreloadingOfCurrentTrack();
}
/**
* Measures width and height of controls visible on screen.
* It ensures that controls will be side-by-side with NavigationBar and notches

Wyświetl plik

@ -13,6 +13,7 @@ public class LoadController implements LoadControl {
private final long initialPlaybackBufferUs;
private final LoadControl internalLoadControl;
private boolean preloadingEnabled = true;
/*//////////////////////////////////////////////////////////////////////////
// Default Load Control
@ -41,6 +42,7 @@ public class LoadController implements LoadControl {
@Override
public void onPrepared() {
preloadingEnabled = true;
internalLoadControl.onPrepared();
}
@ -52,11 +54,13 @@ public class LoadController implements LoadControl {
@Override
public void onStopped() {
preloadingEnabled = true;
internalLoadControl.onStopped();
}
@Override
public void onReleased() {
preloadingEnabled = true;
internalLoadControl.onReleased();
}
@ -78,6 +82,9 @@ public class LoadController implements LoadControl {
@Override
public boolean shouldContinueLoading(final long bufferedDurationUs,
final float playbackSpeed) {
if (!preloadingEnabled) {
return false;
}
return internalLoadControl.shouldContinueLoading(bufferedDurationUs, playbackSpeed);
}
@ -90,4 +97,8 @@ public class LoadController implements LoadControl {
.shouldStartPlayback(bufferedDurationUs, playbackSpeed, rebuffering);
return isInitialPlaybackBufferFilled || isInternalStartingPlayback;
}
public void disablePreloadingOfCurrentTrack() {
preloadingEnabled = false;
}
}