diff --git a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadView.java b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadView.java
index 56097e458f3847a0d7c9642280da6b9a579dda30..c8107626b23694ef4ee628235b63a4bd5657123d 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadView.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadView.java
@@ -14,6 +14,7 @@ import de.tobias.playpad.pad.PadStatus;
 import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.pad.content.PadContentFactory;
 import de.tobias.playpad.pad.content.PadContentRegistry;
+import de.tobias.playpad.pad.content.Playlistable;
 import de.tobias.playpad.pad.content.play.Pauseable;
 import de.tobias.playpad.pad.view.IPadContentView;
 import de.tobias.playpad.pad.view.IPadView;
@@ -56,6 +57,7 @@ public class DesktopPadView implements IPadView {
 	private ProgressBar playBar;
 	private Button playButton;
 	private Button pauseButton;
+	private Button nextButton;
 	private Button stopButton;
 	private Button newButton;
 	private Button settingsButton;
@@ -108,6 +110,7 @@ public class DesktopPadView implements IPadView {
 		// Buttons
 		playButton = new PadButton(new FontIcon(FontAwesomeType.PLAY), controller);
 		pauseButton = new PadButton(new FontIcon(FontAwesomeType.PAUSE), controller);
+		nextButton = new PadButton(new FontIcon(FontAwesomeType.FORWARD), controller);
 		stopButton = new PadButton(new FontIcon(FontAwesomeType.STOP), controller);
 		newButton = new PadButton(new FontIcon(FontAwesomeType.FOLDER_OPEN), controller);
 		settingsButton = new PadButton(new FontIcon(FontAwesomeType.GEAR), controller);
@@ -214,6 +217,10 @@ public class DesktopPadView implements IPadView {
 		return pauseButton;
 	}
 
+	Button getNextButton() {
+		return nextButton;
+	}
+
 	Button getStopButton() {
 		return stopButton;
 	}
@@ -252,7 +259,11 @@ public class DesktopPadView implements IPadView {
 			if (pad.getContent() != null) {
 				if (pad.getContent() instanceof Pauseable) {
 					if (pad.getStatus() == PadStatus.PLAY) {
-						buttonBox.getChildren().setAll(pauseButton, stopButton, settingsButton);
+						if (pad.getContent() instanceof Playlistable) {
+							buttonBox.getChildren().setAll(pauseButton, nextButton, stopButton, settingsButton);
+						} else {
+							buttonBox.getChildren().setAll(pauseButton, stopButton, settingsButton);
+						}
 					} else {
 						buttonBox.getChildren().setAll(playButton, stopButton, settingsButton);
 					}
diff --git a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadViewController.java b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadViewController.java
index 3b9bbbc5afee15b4d58d9117b346d2e2018561e1..34f7d484a23ad7b15eddbafddd9a61ae36bfa6bf 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadViewController.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadViewController.java
@@ -156,6 +156,8 @@ public class DesktopPadViewController implements IPadViewController, EventHandle
 				onPlay();
 			} else if (event.getSource() == padView.getPauseButton()) {
 				onPause();
+			} else if (event.getSource() == padView.getNextButton()) {
+				onNext();
 			} else if (event.getSource() == padView.getStopButton()) {
 				onStop();
 			} else if (event.getSource() == padView.getNewButton()) {
@@ -183,6 +185,12 @@ public class DesktopPadViewController implements IPadViewController, EventHandle
 		}
 	}
 
+	private void onNext() {
+		if (pad.getContent() instanceof Playlistable) {
+			((Playlistable) pad.getContent()).next();
+		}
+	}
+
 	private void onStop() {
 		if (pad.getContent() != null) {
 			pad.setStatus(PadStatus.STOP);
diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/Playlistable.java b/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/Playlistable.java
index 43232e51265dcf5fb97412b1c34c0cf509a89a37..e615cf3e611624c68d0aaa98f7b489426966b8db 100644
--- a/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/Playlistable.java
+++ b/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/Playlistable.java
@@ -2,4 +2,6 @@ package de.tobias.playpad.pad.content;
 
 public interface Playlistable {
 	int currentPlayingMediaIndex();
+
+	void next();
 }
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 e7bce2c14e8ce3574cf75fc9a112afa72e96d532..a637ae6d9f53ee0cdd49b3a86a713fd33b6cf7bb 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
@@ -103,6 +103,10 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte
 		mediaPlayers(currentRunningIndex).pause()
 	}
 
+	override def next(): Unit = {
+		mediaPlayers(currentRunningIndex).next()
+	}
+
 	override def stop(): Boolean = {
 		isPause = false
 		mediaPlayers(currentRunningIndex).stop()