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 a637ae6d9f53ee0cdd49b3a86a713fd33b6cf7bb..8c0fe4bcd6d8b0fa27891788eaabdb325c4f8ed6 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
@@ -11,7 +11,7 @@ import de.tobias.playpad.plugin.content.ContentPluginMain
 import de.tobias.playpad.plugin.content.settings.PlayerInstance
 import de.tobias.playpad.volume.VolumeManager
 import javafx.application.Platform
-import javafx.beans.property.{ReadOnlyObjectProperty, SimpleObjectProperty}
+import javafx.beans.property._
 import javafx.scene.media.{Media, MediaPlayer}
 import javafx.util.Duration
 
@@ -24,13 +24,12 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte
 		def play(): Unit = {
 			_durationProperty.bind(mediaPlayer.totalDurationProperty())
 			_positionProperty.bind(mediaPlayer.currentTimeProperty())
-
-			mediaPlayer.seek(Duration.ZERO)
-
 			ContentPluginMain.playerViewController.showMediaPlayer(getPad.getPadIndex, mediaPlayer, getSelectedZones)
 
+			mediaPlayer.seek(Duration.ZERO)
 			mediaPlayer.play()
-			currentRunningIndex = mediaPlayers.indexOf(this)
+
+			currentRunningIndexProperty.set(mediaPlayers.indexOf(this))
 
 			val controller = getPad.getController
 			if (controller != null) {
@@ -49,9 +48,11 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte
 		def next(): Unit = {
 			stop()
 
-			currentRunningIndex = mediaPlayers.indexOf(this)
-			if (currentRunningIndex + 1 < mediaPlayers.length) {
-				mediaPlayers(currentRunningIndex + 1).play()
+			val index = mediaPlayers.indexOf(this)
+			currentRunningIndexProperty.set(index)
+
+			if (index + 1 < mediaPlayers.length) {
+				mediaPlayers(index + 1).play()
 			} else if (getPad.getPadSettings.isLoop) {
 				mediaPlayers.head.play()
 			} else {
@@ -73,7 +74,7 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte
 	}
 
 	private var mediaPlayers: ListBuffer[MediaPlayerContainer] = ListBuffer.empty
-	private var currentRunningIndex: Int = -1
+	private val currentRunningIndexProperty: IntegerProperty = new SimpleIntegerProperty(-1)
 
 	private val _durationProperty = new SimpleObjectProperty[Duration]
 	private val _positionProperty = new SimpleObjectProperty[Duration]
@@ -83,11 +84,13 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte
 
 	override def getType: String = `type`
 
-	override def currentPlayingMediaIndex(): Int = currentRunningIndex
+	override def currentPlayingMediaIndex: Int = currentRunningIndexProperty.get()
+
+	def currentPlayingMediaIndexProperty(): ReadOnlyIntegerProperty = currentRunningIndexProperty
 
 	override def play(): Unit = {
 		if (isPause) {
-			mediaPlayers(currentRunningIndex).resume()
+			mediaPlayers(currentPlayingMediaIndex).resume()
 		} else {
 			ContentPluginMain.playerViewController.addActivePadToList(getPad.getPadIndex)
 
@@ -100,17 +103,17 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte
 
 	override def pause(): Unit = {
 		isPause = true
-		mediaPlayers(currentRunningIndex).pause()
+		mediaPlayers(currentPlayingMediaIndex).pause()
 	}
 
 	override def next(): Unit = {
-		mediaPlayers(currentRunningIndex).next()
+		mediaPlayers(currentPlayingMediaIndex).next()
 	}
 
 	override def stop(): Boolean = {
 		isPause = false
-		mediaPlayers(currentRunningIndex).stop()
-		currentRunningIndex = -1
+		mediaPlayers(currentPlayingMediaIndex).stop()
+		currentRunningIndexProperty.set(-1)
 
 		ContentPluginMain.playerViewController.removeActivePadFromList(getPad.getPadIndex)
 
@@ -132,7 +135,7 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte
 		showingLastFrame = false
 
 		if (getPad.isEof) {
-			mediaPlayers(currentRunningIndex).next()
+			mediaPlayers(currentPlayingMediaIndex).next()
 			return
 		}
 
diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContentFactory.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContentFactory.scala
index 2842c0feb5cd602c273c88192c41c320578e6c33..774ac58430a4ace5cfa7eb75b2b4735c63a0ff93 100644
--- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContentFactory.scala
+++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContentFactory.scala
@@ -3,7 +3,6 @@ package de.tobias.playpad.plugin.content.pad
 import de.thecodelabs.utils.ui.icon.{FontIcon, MaterialDesignIcon}
 import de.tobias.playpad.pad.Pad
 import de.tobias.playpad.pad.content.{PadContent, PadContentFactory}
-import de.tobias.playpad.pad.preview.PadTextPreview
 import de.tobias.playpad.pad.view.IPadContentView
 import de.tobias.playpad.viewcontroller.PadSettingsTabViewController
 import javafx.scene.Node
@@ -13,7 +12,7 @@ class ContentPlayerPadContentFactory(val `type`: String) extends PadContentFacto
 
 	override def newInstance(pad: Pad): PadContent = new ContentPlayerPadContent(pad, getType)
 
-	override def getPadContentPreview(pad: Pad, parentNode: Pane): IPadContentView = new PadTextPreview(pad, parentNode)
+	override def getPadContentPreview(pad: Pad, parentNode: Pane): IPadContentView = new ContentPlayerPadPreview(pad, parentNode)
 
 	override def getSettingsViewController(pad: Pad): PadSettingsTabViewController = new ContentPlayerPadContentSettingsViewController(pad)
 
diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadPreview.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadPreview.scala
new file mode 100644
index 0000000000000000000000000000000000000000..747e237b8bd359cc184849c784ac5643e43624dd
--- /dev/null
+++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadPreview.scala
@@ -0,0 +1,71 @@
+package de.tobias.playpad.plugin.content.pad
+
+import de.tobias.playpad.pad.Pad
+import de.tobias.playpad.pad.view.IPadContentView
+import javafx.beans.binding.Bindings
+import javafx.collections.ListChangeListener
+import javafx.geometry.{Insets, Pos}
+import javafx.scene.Node
+import javafx.scene.control.Label
+import javafx.scene.layout.{Pane, Priority, VBox}
+import javafx.scene.text.TextAlignment
+
+class ContentPlayerPadPreview(pad: Pad, parent: Pane) extends VBox with IPadContentView {
+
+	val nameLabel: Label = new Label()
+	val subTitleLabel: Label = new Label()
+
+	setupLabel(nameLabel)
+	setupLabel(subTitleLabel)
+
+	getChildren.addAll(nameLabel, subTitleLabel)
+	setSpacing(3)
+	setPadding(new Insets(7))
+
+	getStyleClass.addListener(new ListChangeListener[String] {
+		override def onChanged(c: ListChangeListener.Change[_ <: String]): Unit = {
+			while (c.next()) {
+				if (c.wasRemoved()) {
+					nameLabel.getStyleClass.removeAll(c.getRemoved)
+					subTitleLabel.getStyleClass.removeAll(c.getRemoved)
+				}
+
+				if (c.wasAdded()) {
+					nameLabel.getStyleClass.addAll(c.getAddedSubList)
+					subTitleLabel.getStyleClass.addAll(c.getAddedSubList)
+				}
+			}
+		}
+	})
+
+	nameLabel.textProperty.bind(pad.nameProperty)
+	pad.getContent match {
+		case content: ContentPlayerPadContent =>
+			subTitleLabel.textProperty().bind(Bindings.createStringBinding(() => {
+				if (content.currentPlayingMediaIndex < 0) {
+					""
+				} else {
+					pad.getPaths.get(content.currentPlayingMediaIndex).getFileName
+				}
+			}, content.currentPlayingMediaIndexProperty()))
+		case _ =>
+	}
+
+	private def setupLabel(label: Label): Unit = {
+		label.setWrapText(true)
+		label.setAlignment(Pos.CENTER)
+		label.setTextAlignment(TextAlignment.CENTER)
+
+		label.prefWidthProperty.bind(parent.widthProperty)
+		label.setMaxHeight(Double.MaxValue)
+
+		VBox.setVgrow(label, Priority.ALWAYS)
+	}
+
+	override def getNode: Node = this
+
+	override def deInit(): Unit = {
+		nameLabel.textProperty().unbind()
+		subTitleLabel.textProperty().unbind()
+	}
+}