diff --git a/app/src/main/java/com/cappielloantonio/tempo/util/MappingUtil.java b/app/src/main/java/com/cappielloantonio/tempo/util/MappingUtil.java index 5c3988a0..827771bd 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/util/MappingUtil.java +++ b/app/src/main/java/com/cappielloantonio/tempo/util/MappingUtil.java @@ -196,7 +196,7 @@ public class MappingUtil { bundle.putInt("originalHeight", podcastEpisode.getOriginalHeight() != null ? podcastEpisode.getOriginalHeight() : 0); bundle.putString("uri", uri.toString()); - return new MediaItem.Builder() + MediaItem item = new MediaItem.Builder() .setMediaId(podcastEpisode.getId()) .setMediaMetadata( new MediaMetadata.Builder() @@ -216,9 +216,17 @@ public class MappingUtil { .setExtras(bundle) .build() ) + /* .setClippingConfiguration( + new MediaItem.ClippingConfiguration.Builder() + .setStartPositionMs(0) + .setEndPositionMs(podcastEpisode.getDuration() * 1000) + .build() + ) */ .setMimeType(MimeTypes.BASE_TYPE_AUDIO) .setUri(uri) .build(); + + return item; } private static Uri getUri(Child media) { diff --git a/app/src/tempo/java/com/cappielloantonio/tempo/service/MediaService.kt b/app/src/tempo/java/com/cappielloantonio/tempo/service/MediaService.kt index c2581d1d..bc7a694e 100644 --- a/app/src/tempo/java/com/cappielloantonio/tempo/service/MediaService.kt +++ b/app/src/tempo/java/com/cappielloantonio/tempo/service/MediaService.kt @@ -10,6 +10,7 @@ import androidx.media3.cast.CastPlayer import androidx.media3.cast.SessionAvailabilityListener import androidx.media3.common.* import androidx.media3.common.util.UnstableApi +import androidx.media3.exoplayer.DefaultLoadControl import androidx.media3.exoplayer.ExoPlayer import androidx.media3.exoplayer.source.DefaultMediaSourceFactory import androidx.media3.session.* @@ -207,6 +208,7 @@ class MediaService : MediaLibraryService(), SessionAvailabilityListener { .setAudioAttributes(AudioAttributes.DEFAULT, true) .setHandleAudioBecomingNoisy(true) .setWakeMode(C.WAKE_MODE_NETWORK) + // .setLoadControl(initializeLoadControl()) .build() } @@ -291,6 +293,17 @@ class MediaService : MediaLibraryService(), SessionAvailabilityListener { }) } + private fun initializeLoadControl(): DefaultLoadControl { + return DefaultLoadControl.Builder() + .setBufferDurationsMs( + 60_000, + 120_000, + DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS, + DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS + ) + .build() + } + private fun setPlayer(oldPlayer: Player?, newPlayer: Player) { if (oldPlayer === newPlayer) return oldPlayer?.stop()