mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-29 22:32:59 +00:00 
			
		
		
		
	Disabled preloading when switching streams
This commit is contained in:
		| @@ -958,6 +958,9 @@ public class VideoDetailFragment | ||||
|             return; | ||||
|         } | ||||
|         setInitialData(sid, videoUrl, title, queue); | ||||
|         if (player != null) { | ||||
|             player.disablePreloadingOfCurrentTrack(); | ||||
|         } | ||||
|         startLoading(false, true); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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; | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Avently
					Avently