Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

84
LINES

< > BotCompany Repo | #1003706 // JavaFX: Try Adding Buttons To Video And Auto-Resizing

JavaX source code [tags: use-pretranspiled] - run with: x30.jar

Libraryless. Click here for Pure Java version (131L/2K/5K).

!759

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;
import javafx.scene.layout.*;
import javafx.geometry.Insets;
import javafx.scene.control.Button;
import javafx.beans.property.*;
import javafx.beans.binding.*;

public class main extends Application {
  p {
    System.setProperty("prism.forceGPU", "true");
    System.setProperty("prism.verbose", "true");
    
    fixContextClassLoader();
    launch();
  }

  public void start(Stage stage) {
    // Create and set the Scene.
    // Numbers are window size (content is not scaled)
    double w = 540, h = 209;
    Scene scene = new Scene(new Group(), w, h);
    stage.setScene(scene);

    // Name and display the Stage.
    stage.setTitle("Hello Media");
    stage.show();

    // Create the media source.
    //String source = getParameters().getRaw().get(0);
    String source = "/media/CE009E97009E865D__/Downloads/Oblivion (2013)/Oblivion.2013.mp4";
    Media media = null;
    try {
      media = new Media(new File(source).toURI().toURL().toString());
    } catch (MalformedURLException e) {
      throw new RuntimeException(e);
    }

    // Create the player and set to play automatically.
    MediaPlayer mediaPlayer = new MediaPlayer(media);
    mediaPlayer.setAutoPlay(true);

    // Create the media view.
    MediaView mediaView = new MediaView(mediaPlayer);
    
    // Resize Hack
    DoubleProperty mvw = mediaView.fitWidthProperty();
    DoubleProperty mvh = mediaView.fitHeightProperty();
    mvw.bind(Bindings.selectDouble(mediaView.sceneProperty(), "width"));
    mvh.bind(Bindings.selectDouble(mediaView.sceneProperty(), "height"));
    mediaView.setPreserveRatio(true);
  
  // Make BorderPane and add to scene.
    BorderPane border = new BorderPane();
    HBox hbox = makeButtons();
    border.setBottom(hbox);
    border.setCenter(mediaView);
    
    ((Group) scene.getRoot()).getChildren().add(border);
  }
  
  HBox makeButtons() {
    new HBox hbox;
    hbox.setPadding(new Insets(15, 12, 15, 12));
    hbox.setSpacing(10);
    hbox.setStyle("-fx-background-color: #336699;");

    Button buttonCurrent = new Button("Current");
    buttonCurrent.setPrefSize(100, 20);

    Button buttonProjected = new Button("Projected");
    buttonProjected.setPrefSize(100, 20);
    hbox.getChildren().addAll(buttonCurrent, buttonProjected);

    return hbox;    
  }
}

Author comment

Began life as a copy of #1003700

download  show line numbers  debug dex  old transpilations   

Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, ddnzoavkxhuk, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt

Comments [hide]

ID Author/Program Comment Date
1261 stefan Almost works... just the video is cut off by the buttons. 2016-07-26 00:29:36

add comment

Snippet ID: #1003706
Snippet name: JavaFX: Try Adding Buttons To Video And Auto-Resizing
Eternal ID of this version: #1003706/1
Text MD5: 54fb15f9ab5276fbe21db408d1e46eeb
Transpilation MD5: 768a101a570a0f602928ee4184485216
Author: stefan
Category: javax / javafx
Type: JavaX source code
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2016-07-26 00:27:49
Source code size: 2604 bytes / 84 lines
Pitched / IR pitched: No / No
Views / Downloads: 812 / 831
Referenced in: #1003707 - JavaFX: Video, Fast, Auto-Resizing, No Buttons