diff --git a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt index 1a0434cd3..f07e0f4f3 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt @@ -466,12 +466,8 @@ class PlayerFragment : BaseFragment() { videosNameArray[which] == getString(R.string.hls) || videosNameArray[which] == "LBRY HLS" ) { - // no need to merge sources if using hls - val mediaItem: MediaItem = MediaItem.Builder() - .setUri(videosUrlArray[which]) - .setSubtitleConfigurations(subtitle) - .build() - exoPlayer.setMediaItem(mediaItem) + // set the progressive media source + setProgressiveMediaSource(videosUrlArray[which]) } else { val videoUri = videosUrlArray[which] val audioUrl = @@ -1194,7 +1190,9 @@ class PlayerFragment : BaseFragment() { } } - // get the name of the currently played chapter + /** + * Get the name of the currently played chapter + */ private fun getCurrentChapterIndex(): Int { val currentPosition = exoPlayer.currentPosition var chapterIndex = 0 @@ -1230,6 +1228,14 @@ class PlayerFragment : BaseFragment() { exoPlayer.setMediaSource(mergeSource) } + private fun setProgressiveMediaSource(uri: Uri) { + val mediaItem: MediaItem = MediaItem.Builder() + .setUri(uri) + .setSubtitleConfigurations(subtitle) + .build() + exoPlayer.setMediaItem(mediaItem) + } + private fun getAvailableResolutions(): Pair, Array> { if (!this::streams.isInitialized) return Pair(arrayOf(), arrayOf()) @@ -1311,11 +1317,7 @@ class PlayerFragment : BaseFragment() { // if default resolution isn't set or available, use hls if available if (streams.hls != null) { - val mediaItem: MediaItem = MediaItem.Builder() - .setUri(streams.hls) - .setSubtitleConfigurations(subtitle) - .build() - exoPlayer.setMediaItem(mediaItem) + setProgressiveMediaSource(Uri.parse(streams.hls)) return }