diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPlayerViewController.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPlayerViewController.scala index 90bc30425035955ac49b0833f9381792c7a1a7b4..7352e03f12819cf1a498ffcf6f7d8468a9e13cd8 100644 --- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPlayerViewController.scala +++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPlayerViewController.scala @@ -59,7 +59,7 @@ class ContentPlayerViewController extends NVC { } } - def setFadeValue(mediaPlayer: MediaPlayer, value: Double): Unit ={ + def setFadeValue(mediaPlayer: MediaPlayer, value: Double): Unit = { if (mediaViews.contains(mediaPlayer)) { val mediaView = mediaViews(mediaPlayer) mediaView.setOpacity(value) diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala index 005aad995945036e872e3e3d1001944ebbbf1321..f983565469dbc78886f9b80de0f9a8b134d11963 100644 --- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala +++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala @@ -87,8 +87,12 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte private var showingLastFrame: Boolean = false private var isPause: Boolean = false - private val fadeController = new LinearFadeController(value => ContentPluginMain.playerViewController - .setFadeValue(mediaPlayers(currentPlayingMediaIndex).mediaPlayer, getSelectedZones, value)) + private val fadeController = new LinearFadeController(value => { + if (currentPlayingMediaIndex >= 0) { + ContentPluginMain.playerViewController + .setFadeValue(mediaPlayers(currentPlayingMediaIndex).mediaPlayer, getSelectedZones, value) + } + }) override def getType: String = `type` @@ -134,9 +138,13 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte } def onEof(): Unit = { + if (isFadeActive) { + ContentPluginMain.playerViewController.removeActivePadFromList(getPad.getPadIndex, getSelectedZones) + return + } + if (shouldShowLastFrame() && !showingLastFrame // Only is settings is enabled and not already in last frame state && !pad.getPadSettings.isLoop // Only go to last frame state, is looping is disabled - && !isFadeActive // Only go to last frame state, if no fade is active (if eof is reached while fade out, the last frame should not be hold) ) { getPad.setStatus(PadStatus.PAUSE) showingLastFrame = true @@ -149,8 +157,6 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte mediaPlayers(currentPlayingMediaIndex).next() return } - - ContentPluginMain.playerViewController.removeActivePadFromList(getPad.getPadIndex, getSelectedZones) } /*