package org.Models;

import javazoom.jl.player.Player;

import java.io.BufferedInputStream;
import java.io.InputStream;

public class Musique extends Thread {
    private Player player;
    private volatile boolean stop = false;
    private volatile boolean enPause = false;

    public void run() {
        try {
            while (!stop) {
                if (!enPause) {
                    try (InputStream musique = getClass().getResourceAsStream("/TetrisMusic.mp3")) {
                        if (musique == null) {
                            System.err.println("Erreur : le fichier musique.mp3 est introuvable.");
                            return;
                        }
                        BufferedInputStream buffer = new BufferedInputStream(musique);
                        this.player = new Player(buffer);
                        System.out.println("Lecture de la musique...");
                        player.play();
                    } catch (Exception e) {
                        System.err.println("Erreur lors de la lecture de la musique : " + e.getMessage());
                    }
                } else {
                    Thread.sleep(1000); // Attendre 1 seconde avant de vérifier à nouveau
                }
            }
        } catch (InterruptedException e) {
            System.err.println("Musique interrompue : " + e.getMessage());
        }
        System.out.println("Fin du thread de musique.");
    }
    public void basculePlayPause() {
        enPause = !enPause;
        if (enPause && player != null) {
            System.out.println("Musique en pause.");
            player.close();
        }
    }

    public void arreterMusique() {
        System.out.println("Arrêt de la musique.");
        stop = true;
        if (player != null) {
            player.close();
        }
    }
}
