Kinofilm zentrieren

Hatsi09

Aktives Mitglied
Liebes Forum,

ich versuche, mittels Mediaplayer Videos wiederzugeben. Das Problem ist, dass es Kinofilme sind, also Breitbild. Wenn ich den Film normal anschaue, habe ich oben und unten einen schwarzen Streifen. In dem Javafx Mediaplayer beginnt das Video allerdings am oberen Rand und ich habe dafür eine doppelten schwarzen Rand unten.

Java:
public void start(Stage stage)
{
    sceneStage = stage;
    sceneStage.centerOnScreen();

    this.filmmusikkonzert = new Filmmusikkonzert2023(this);
    this.filmmusikkonzert.setupKonzert();
    startKonzert();
}

Java:
private void startKonzert()
{
    Scene actualScene = createScene(filmmusikkonzert.getAnimationAtIndex(index));
    navigate(actualScene);
    sceneStage.setScene(actualScene);

    sceneStage.setTitle("Film");
    sceneStage.show();
}

Java:
private Scene createScene(Animation medium)
{
    Scene scene = null;
    if (medium instanceof Film) {
        // Create the Scene
        scene = new Scene(new Group(), 1068, 600);
        scene.setFill(Color.BLACK);

        // Create the player
        mediaPlayer = new MediaPlayer((Media) medium.getMedia());
        mediaPlayer.setStartTime(((Film) medium).getStart());
        audioPlayer = null;
        if (((Film) medium).hasSound()) {
            audioPlayer = new MediaPlayer(new Media(((Film) medium).getSoundFile()));
            audioPlayer.currentRateProperty().addListener(l -> {
                if (audioPlayer.getCurrentRate() == 0) {
                    mediaPlayer.setVolume(100);
                }
            });
            mediaPlayer.setVolume(0);
        }

        mediaPlayer.currentTimeProperty().addListener(l -> {
            ((Film) medium).listen();
        });

        // Create the view and add it to the Scene.
        MediaView mediaView = new MediaView(mediaPlayer);
        mediaView.fitHeightProperty().bind(scene.heightProperty());
        mediaView.fitWidthProperty().bind(scene.widthProperty());
        ((Group) scene.getRoot()).getChildren().add(mediaView);
    }
    ...
    return scene;
}

Hat jemand eine Idee, warum der Film nicht zentriert ist und ein breiter schwarzer Streifen unten ist, anstatt ein schmaler unten und oben?

Vielen Dank
 

Anhänge

  • Screenshot.png
    Screenshot.png
    1,5 MB · Aufrufe: 0
Hat jemand eine Idee, warum der Film nicht zentriert ist und ein breiter schwarzer Streifen unten ist, anstatt ein schmaler unten und oben?
Hat der Film ein Seitenverhältnis von 16:9 ?
Du setzt deine Scene auf die Auflösung von 1068, 600 .
Und bindest deine mediaview damit an das Seitenverhältnis 1.78 : 1
Das Problem ist, dass es Kinofilme sind, also Breitbild.
Cinemascope hat 2.35 : 1
WideScreen hat 1.85 : 1

Das könnte das Problem sein . ?
 
vielen Dank. Sorry das ich jetzt erst antworte, irgendwie funktioniert die Benachrichtigung nicht so richtig.
Hat der Film ein Seitenverhältnis von 16:9 ?
Der Film hat eine die normale FHD Auflösung von 1920 x 1080. Das wäre, wenn ich mich nicht verrechnet habe ein Seitenverhältnis von 1.78:1?
Allerdings habe ich festgestellt, dass mein Bildschirm eine Auflösung von 2560 x 1600 hat. Wenn ich sie auf FHD runtersetze, dann ist es logischerweise zentriert. Das Problem ist, dass der Film über einen Beamer gezeigt werden soll (und noch weitere Filme mehrere) und ich da nicht weiß ob der Trick funktioniert. Gibt es eine Möglichkeit, dass man das programmiertechnisch universell macht, dass der Film (auch bei anderen Verhältnissen oder Auflösung) immer mittig positioniert , so wie die Fernseher das machen, wird (oder alternativ lieber am unteren Rand) ggf. dann wie beim Fernseher halt mit schwarzem Rand rechts und links?
 
Ich kenne mich mit dem JavaFX Klassen nicht aus, aber du koenntest natuerlich auch die mediaView auf die korrekten Seitenverhaeltnisse skalieren und dann einfach in einem schwarzen Panel mittig platzieren.
 

Zurück
Oben