@@ -6,6 +6,7 @@ package ch.srgssr.pillarbox.core.business
66
77import android.content.Context
88import androidx.annotation.VisibleForTesting
9+ import androidx.media3.common.Player
910import androidx.media3.common.util.Clock
1011import androidx.media3.exoplayer.DefaultLoadControl
1112import androidx.media3.exoplayer.LoadControl
@@ -14,10 +15,12 @@ import ch.srgssr.pillarbox.core.business.integrationlayer.service.MediaCompositi
1415import ch.srgssr.pillarbox.core.business.source.SRGAssetLoader
1516import ch.srgssr.pillarbox.core.business.tracker.DefaultMediaItemTrackerRepository
1617import ch.srgssr.pillarbox.player.PillarboxExoPlayer
18+ import ch.srgssr.pillarbox.player.PillarboxExoPlayer.Companion.DEFAULT_MAX_SEEK_TO_PREVIOUS_POSITION
1719import ch.srgssr.pillarbox.player.PillarboxLoadControl
1820import ch.srgssr.pillarbox.player.SeekIncrement
1921import ch.srgssr.pillarbox.player.source.PillarboxMediaSourceFactory
2022import ch.srgssr.pillarbox.player.tracker.MediaItemTrackerProvider
23+ import kotlin.time.Duration
2124import kotlin.time.Duration.Companion.seconds
2225
2326/* *
@@ -31,6 +34,7 @@ object DefaultPillarbox {
3134 *
3235 * @param context The context.
3336 * @param seekIncrement The seek increment.
37+ * @param maxSeekToPreviousPosition The [Player.getMaxSeekToPreviousPosition] value.
3438 * @param mediaItemTrackerRepository The provider of MediaItemTracker, by default [DefaultMediaItemTrackerRepository].
3539 * @param mediaCompositionService The [MediaCompositionService] to use, by default [HttpMediaCompositionService].
3640 * @param loadControl The load control, by default [PillarboxLoadControl].
@@ -39,13 +43,15 @@ object DefaultPillarbox {
3943 operator fun invoke (
4044 context : Context ,
4145 seekIncrement : SeekIncrement = defaultSeekIncrement,
46+ maxSeekToPreviousPosition : Duration = DEFAULT_MAX_SEEK_TO_PREVIOUS_POSITION ,
4247 mediaItemTrackerRepository : MediaItemTrackerProvider = DefaultMediaItemTrackerRepository (),
4348 mediaCompositionService : MediaCompositionService = HttpMediaCompositionService (),
4449 loadControl : LoadControl = PillarboxLoadControl (),
4550 ): PillarboxExoPlayer {
4651 return DefaultPillarbox (
4752 context = context,
4853 seekIncrement = seekIncrement,
54+ maxSeekToPreviousPosition = maxSeekToPreviousPosition,
4955 mediaItemTrackerRepository = mediaItemTrackerRepository,
5056 mediaCompositionService = mediaCompositionService,
5157 loadControl = loadControl,
@@ -58,6 +64,7 @@ object DefaultPillarbox {
5864 *
5965 * @param context The context.
6066 * @param seekIncrement The seek increment.
67+ * @param maxSeekToPreviousPosition The [Player.getMaxSeekToPreviousPosition] value.
6168 * @param mediaItemTrackerRepository The provider of MediaItemTracker, by default [DefaultMediaItemTrackerRepository].
6269 * @param loadControl The load control, by default [DefaultLoadControl].
6370 * @param mediaCompositionService The [MediaCompositionService] to use, by default [HttpMediaCompositionService].
@@ -68,6 +75,7 @@ object DefaultPillarbox {
6875 operator fun invoke (
6976 context : Context ,
7077 seekIncrement : SeekIncrement = defaultSeekIncrement,
78+ maxSeekToPreviousPosition : Duration = DEFAULT_MAX_SEEK_TO_PREVIOUS_POSITION ,
7179 mediaItemTrackerRepository : MediaItemTrackerProvider = DefaultMediaItemTrackerRepository (),
7280 loadControl : LoadControl = DefaultLoadControl (),
7381 mediaCompositionService : MediaCompositionService = HttpMediaCompositionService (),
@@ -76,6 +84,7 @@ object DefaultPillarbox {
7684 return PillarboxExoPlayer (
7785 context = context,
7886 seekIncrement = seekIncrement,
87+ maxSeekToPreviousPosition = maxSeekToPreviousPosition,
7988 mediaSourceFactory = PillarboxMediaSourceFactory (context).apply {
8089 addAssetLoader(SRGAssetLoader (context, mediaCompositionService))
8190 },
0 commit comments