Package com.castlabs.sdk.thumbs
Class LoadingStrategy
- java.lang.Object
-
- com.castlabs.sdk.thumbs.LoadingStrategy
-
- All Implemented Interfaces:
Iterable<com.castlabs.sdk.thumbs.LoadingStrategy.Wave>
public class LoadingStrategy extends Object implements Iterable<com.castlabs.sdk.thumbs.LoadingStrategy.Wave>
Defines in what order to load (cache) thumbnails. The goal of defining a strategy is to spread out the loading of the thumbnails so that they are not sequentially loaded and to quickly have "significant" thumbnails for most of the content in a reasonable time.To achieve this, the LoadingStrategy defines
waves
. Each Wave defines the space between thumbnails to be loaded. A more spaced-out Wave will load fewer thumbnails and finish preloading faster, but will provide less accurate thumbnails. A less spaced Wave will provide more accurate thumbnails but taking longer to complete.Currently, there's three ways of adding Waves:
LoadingStrategy.TimeWave
: defines the amount of time between thumbnailsLoadingStrategy.PercentageWave
: defines the time percentage of the media between thumbnailsLoadingStrategy.StepWave
: defines the number of thumbnails to skip between two thumbnails, regardless of their duration
To construct a LoadingStrategy use the
LoadingStrategy.Builder
and add Waves to it with its addXWave(...) methods. Order *is important*. Waves will be loaded in sequential adding order. Make sure the most spread-out Wave is added first while the most granular is added last.Default Strategy is
ThumbsPlugin.DEFAULT_LOADING_STRATEGY
.- Since:
- 4.2.39
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
LoadingStrategy.Builder
Builder forLoadingStrategy
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getLoadStartDelayMs()
The delay time until thumbnail load starts in millisecondsIterator<com.castlabs.sdk.thumbs.LoadingStrategy.Wave>
iterator()
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-