Javafx problema video

di il
1 risposte

Javafx problema video

Ho un problema, il video in questione è presente sia nel mio disco C che nel package del programma(uso netbeans)se uso questa sintassi:

media2 = new Media("file:///C://videoBacc/2.mp4");
[/CODE

il video funziona benissimo ed alla fine appaiono i contenitori con dentro i bottoni denominati second e third:

[CODE
player.setOnEndOfMedia(new Runnable() {

            @Override
            public void run() {

                second.setTranslateX((t.getScreenSize().width / 2) + 100);
                second.setTranslateY(t.getScreenSize().height / 2);
                third.setTranslateX((t.getScreenSize().width / 2) - 100);
                third.setTranslateY(t.getScreenSize().height / 2);

                root.getChildren().add(second);
                root.getChildren().add(third);
            }
});

ma in questo modo il percorso dei video è fisso ed il programma funzionerà solo su windows, quindi avevo pensato di usare la sintassi

media1 = new Media(getClass().getResource("/video/1.mp4").toString());
il video viene letto lo stesso ma quando arriva il momento in cui dovrebbe entrare in funzione il metodo setOnEndOfMedia, il programma sembra che salti il tutto non facendo ovviamente apparire i due bottoni, qualcuno sa come aiutarmi????grazie in anticipo, qui sotto posto il codice per intero.


package dapostare;

import java.awt.Toolkit;
import java.io.File;
import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.VBox;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javax.swing.JOptionPane;

public class DaPostare extends Application {

    int w = 0;
    int h = 0;

    Media media1;
    Media media2;
    Media media3;

    MediaPlayer player;
    MediaView view;
    Toolkit t = Toolkit.getDefaultToolkit();

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(final Stage stage) throws Exception {
        
            media1 = new Media(getClass().getResource("/video/1.mp4").toString());
            media2 = new Media("file:///C://videoBacc/2.mp4");
            media3 = new Media("file:///C://videoBacc/2.mp4");
            player = new MediaPlayer(media1);
            view = new MediaView(player);
            
        final Group root = new Group();

        Scene scene = new Scene(root, w, h, Color.BLACK);

        stage.setScene(scene);
        //stage.setWidth(100);      setta la larghezza del frame
        stage.show();
        view.setFitWidth(t.getScreenSize().width);      //setta la grandezza del video
        view.setFitHeight(t.getScreenSize().height);

        player.play();
        final VBox second = new VBox();
        final Button destra = new Button();
        destra.setScaleX(2);
        destra.setScaleY(2);
        destra.setText("destra");
        second.getChildren().add(destra);

        final VBox third = new VBox();
        final Button sinistra = new Button();
        sinistra.setScaleX(2);
        sinistra.setScaleY(2);
        sinistra.setText("sinistra");
        third.getChildren().add(sinistra);

        root.getChildren().add(view);
//        root.getChildren().add(perPlay);

        player.setOnReady(new Runnable() {

            @Override
            public void run() {
                w = player.getMedia().getWidth();
                h = player.getMedia().getHeight();

                stage.setFullScreen(true);

            }
        });

        player.setOnEndOfMedia(new Runnable() {

            @Override
            public void run() {

                second.setTranslateX((t.getScreenSize().width / 2) + 100);
                second.setTranslateY(t.getScreenSize().height / 2);
                third.setTranslateX((t.getScreenSize().width / 2) - 100);
                third.setTranslateY(t.getScreenSize().height / 2);

                root.getChildren().add(second);
                root.getChildren().add(third);
            }
        });
        destra.setOnMousePressed(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent me) {
                player = new MediaPlayer(media3);
                view = new MediaView(player);
                root.getChildren().add(view);

                view.setFitWidth(t.getScreenSize().width);      //setta la grandezza del video
                view.setFitHeight(t.getScreenSize().height);

                player.play();

            }
        });
        //PERCORSO CHE PARTE DA SINISTRA
        sinistra.setOnMousePressed(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent me) {
                player = new MediaPlayer(media2);
                view = new MediaView(player);
                root.getChildren().add(view);

                view.setFitWidth(t.getScreenSize().width);      //setta la grandezza del video
                view.setFitHeight(t.getScreenSize().height);

                player.play();
            }
        });
    }
}

1 Risposte

  • Re: Javafx problema video

    Inserisci uno JOptionPane.showInputDialog() per caricare il video.
    Ciao.

    P.S. i crossposting non sono permessi
Devi accedere o registrarti per scrivere nel forum
1 risposte