JavaFX MediaPlayer in Default Window

Demonstrates placing a JavaFXMediaPlayer in the default Processing window. A green circle was added to demonstrate that draw() is functional; this would not be possible if we used the traditional JavaFX Stage.

import java.io.File;
import javafx.scene.layout.StackPane;
import javafx.scene.canvas.Canvas;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;

Canvas canvas;
StackPane root;

void setup() {
  size(500, 500, FX2D);
  surface.setTitle("JavaFX MediaPlayer");
  canvas = (Canvas)surface.getNative();
  root = (StackPane)canvas.getParent();
  // **** Replace this with your file path and mp4 **** //
  String path = "/Users/s/Movies/birds.mp4";
  Media media = new Media(new File(path).toURI().toString());
  MediaPlayer mediaPlayer = new MediaPlayer(media);
  MediaView mediaView = new MediaView(mediaPlayer);
  mediaPlayer.setAutoPlay(true);
  mediaView.setLayoutX(10);
  mediaView.setLayoutY(10);
  root.getChildren().add(mediaView);
}

void draw(){
  fill(0,255,0);
  circle(100,50,50);
}

Output: