diff --git a/app/src/main/java/dev/jdtech/jellyfin/fragments/InitializingFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/fragments/InitializingFragment.kt index e30ba480..99bd8191 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/fragments/InitializingFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/fragments/InitializingFragment.kt @@ -10,10 +10,6 @@ import dev.jdtech.jellyfin.R class InitializingFragment : Fragment() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - } - override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? diff --git a/app/src/main/java/dev/jdtech/jellyfin/mpv/MPVPlayer.kt b/app/src/main/java/dev/jdtech/jellyfin/mpv/MPVPlayer.kt index 0c2b9abf..b8a9a573 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/mpv/MPVPlayer.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/mpv/MPVPlayer.kt @@ -293,6 +293,7 @@ class MPVPlayer( } seekTo(C.TIME_UNSET) if (playWhenReady) { + Log.d("mpv", "Starting playback...") MPVLib.setPropertyBoolean("pause", false) } for (videoListener in videoListeners) { @@ -586,7 +587,8 @@ class MPVPlayer( * bounds of the list of media items. */ override fun setMediaItems(mediaItems: MutableList, startWindowIndex: Int, startPositionMs: Long) { - TODO("Not yet implemented") + internalMediaItems = mediaItems + initialSeekTo = startPositionMs / 1000 } /** @@ -658,7 +660,7 @@ class MPVPlayer( trackSelectionArray = TrackSelectionArray() playbackParameters = PlaybackParameters.DEFAULT initialCommands.clear() - initialSeekTo = 0L + //initialSeekTo = 0L } /** Prepares the player. */ @@ -814,6 +816,7 @@ class MPVPlayer( val seekTo = if (positionMs != C.TIME_UNSET) positionMs / C.MILLIS_PER_SECOND else initialSeekTo if (isPlayerReady) { MPVLib.command(arrayOf("seek", "$seekTo", "absolute")) + initialSeekTo = 0L } else { initialSeekTo = seekTo } diff --git a/app/src/main/java/dev/jdtech/jellyfin/viewmodels/PlayerActivityViewModel.kt b/app/src/main/java/dev/jdtech/jellyfin/viewmodels/PlayerActivityViewModel.kt index eb68e3d6..e45e4a0c 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/viewmodels/PlayerActivityViewModel.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/viewmodels/PlayerActivityViewModel.kt @@ -58,20 +58,30 @@ constructor( val preferredSubtitleLanguage = sp.getString("subtitle_language", null) ?: "" if (useMpv) { - val preferredLanguages = mapOf(TrackType.AUDIO to preferredAudioLanguage, TrackType.SUBTITLE to preferredSubtitleLanguage) - player = MPVPlayer(application, false, preferredLanguages, sp.getBoolean("mpv_disable_hwdec", false)) + val preferredLanguages = mapOf( + TrackType.AUDIO to preferredAudioLanguage, + TrackType.SUBTITLE to preferredSubtitleLanguage + ) + player = MPVPlayer( + application, + false, + preferredLanguages, + sp.getBoolean("mpv_disable_hwdec", false) + ) } else { val renderersFactory = - DefaultRenderersFactory(application).setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON) + DefaultRenderersFactory(application).setExtensionRendererMode( + DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON + ) trackSelector.setParameters( trackSelector.buildUponParameters() .setTunnelingEnabled(true) .setPreferredAudioLanguage(preferredAudioLanguage) .setPreferredTextLanguage(preferredSubtitleLanguage) ) - player = SimpleExoPlayer.Builder(application, renderersFactory) - .setTrackSelector(trackSelector) - .build() + player = SimpleExoPlayer.Builder(application, renderersFactory) + .setTrackSelector(trackSelector) + .build() } } @@ -99,18 +109,9 @@ constructor( Timber.e(e) } - when (player) { - is MPVPlayer -> { - player.setMediaItems(mediaItems) - player.prepare() - player.play() - } - is SimpleExoPlayer -> { - player.setMediaItems(mediaItems, currentWindow, items[0].playbackPosition) - player.playWhenReady = playWhenReady - player.prepare() - } - } + player.setMediaItems(mediaItems, currentWindow, items[0].playbackPosition) + player.prepare() + player.play() } pollPosition(player) @@ -130,11 +131,11 @@ constructor( } } - playWhenReady = player.playWhenReady - playbackPosition = player.currentPosition - currentWindow = player.currentWindowIndex - player.removeListener(this) - player.release() + playWhenReady = player.playWhenReady + playbackPosition = player.currentPosition + currentWindow = player.currentWindowIndex + player.removeListener(this) + player.release() } private fun pollPosition(player: BasePlayer) {