package com.iit.uni;

import java.io.File;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Tooltip;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;

public class AudioPlayerDemo extends Application {

    @Override
    public void start(Stage stage) {
        // Videó fájl elérési útja
        String path = "file_example_MP4_480_1_5MG.mp4"; // cseréld a saját fájlodra

        Media media = new Media(new File(path).toURI().toString());
        MediaPlayer mediaPlayer = new MediaPlayer(media);
        MediaView mediaView = new MediaView(mediaPlayer);
        mediaView.setPreserveRatio(true); // megtartja a képarányt

        // Gombok létrehozása
        Button playButton = new Button("Play");
        Button pauseButton = new Button("Pause");
        Button stopButton = new Button("Stop");

        // Tooltip hozzáadása
        playButton.setTooltip(new Tooltip("Play a videót"));
        pauseButton.setTooltip(new Tooltip("Pause a videót"));
        stopButton.setTooltip(new Tooltip("Stop a videót"));

        // Események
        playButton.setOnAction(e -> mediaPlayer.play());
        pauseButton.setOnAction(e -> mediaPlayer.pause());
        stopButton.setOnAction(e -> mediaPlayer.stop());

        HBox buttons = new HBox(10, playButton, pauseButton, stopButton);
        buttons.setPadding(new Insets(15));

        VBox layout = new VBox(10, mediaView, buttons);
        layout.setPadding(new Insets(20));

        Scene scene = new Scene(layout);

        // CSS betöltése
        scene.getStylesheets().add(getClass().getResource("media-player.css").toExternalForm());

        // Stage beállítása
        stage.setTitle("Látványos Video Player");

        // Amikor a videó metaadatai betöltődnek
        mediaPlayer.setOnReady(() -> {
            double videoWidth = media.getWidth();
            double videoHeight = media.getHeight();

            mediaView.setFitWidth(videoWidth);
            mediaView.setFitHeight(videoHeight);

            // Kis plusz padding az ablaknak
            stage.setWidth(videoWidth + 40);
            stage.setHeight(videoHeight + 130);
        });

        stage.setScene(scene);
        stage.show();
    }

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