diff --git a/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt index defd18f6e..ab0e87086 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt @@ -93,6 +93,12 @@ class AudioPlayerFragment : Fragment(), AudioPlayerOptions { if (isOffline) OfflinePlayerService::class.java else OnlinePlayerService::class.java, bundleOf() ) { + if (_binding == null) { + it.sendCustomCommand(AbstractPlayerService.stopServiceCommand, Bundle.EMPTY) + it.release() + return@startMediaService + } + playerController = it handleServiceConnection() } 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 fd45e59b5..49bf4f355 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 @@ -458,6 +458,12 @@ class PlayerFragment : Fragment(), OnlinePlayerOptions { VideoOnlinePlayerService::class.java, bundleOf(IntentData.playerData to playerData) ) { + if (_binding == null) { + playerController.sendCustomCommand(AbstractPlayerService.stopServiceCommand, Bundle.EMPTY) + playerController.release() + return@startMediaService + } + playerController = it playerController.addListener(playerListener) } @@ -847,11 +853,13 @@ class PlayerFragment : Fragment(), OnlinePlayerOptions { handler.removeCallbacksAndMessages(null) - playerController.removeListener(playerListener) - playerController.pause() + if (::playerController.isInitialized) { + playerController.removeListener(playerListener) + playerController.pause() - playerController.sendCustomCommand(AbstractPlayerService.stopServiceCommand, Bundle.EMPTY) - playerController.release() + playerController.sendCustomCommand(AbstractPlayerService.stopServiceCommand, Bundle.EMPTY) + playerController.release() + } if (PlayerHelper.pipEnabled) { // disable the auto PiP mode for SDK >= 32