Czemu po dodaniu dźwięku wav, cała aplikacja się zacina?

0

Plik waży 13MB, czy to z tego powodu, czy po prostu coś jest nie tak z kodem?
Dźwięk słychać w tle, ale cała aplikacja się zacina

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Queue;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.swing.*;


public class GlowneOkno extends JFrame implements ActionListener{
	public JButton b1,b2,b3,b4;
	int prawa=300;int gora=250;int szerokosc=200;int wysokosc=100;
	
	public GlowneOkno(){
		super("ZABIJ JOM");
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		setSize(800, 800);
		setVisible(true);
		setLocationRelativeTo(null);
		setResizable(false);
		setLayout(null);
		///WYWOŁYWANIE PRZYCISKÓW
		b1=dodajPrzycisk("Nowa Gra");
		b1.addActionListener(new nowaGra());
		this.add(b1);
		
		b2=dodajPrzycisk("Opcje");
		b2.addActionListener(new Opcje());
		this.add(b2);
		
		b3=dodajPrzycisk("Twórcy");
		b3.addActionListener(new Director());
		this.add(b3);
		
		b4=dodajPrzycisk("Wyjście");
		b4.addActionListener(new Exit());
		this.add(b4);
		///WYWOŁYWANIE MUZYKI W TLE, NIESTETY ZACZYNA ZACINAĆ, PLIK WAŻY 13MB
        File muzyka = new File("C:/Users/Krzysiek/Desktop/muzyka.wav");
        PlaySound(muzyka);
		///IKONA 
        setIconImage(zwrocZdjecie("C:/Users/Krzysiek/Desktop/icon.png"));
		getContentPane().setBackground(Color.BLACK);
	}

	void PlaySound(File Sound)
    {
        try
        {
            Clip clip = AudioSystem.getClip();
            clip.open(AudioSystem.getAudioInputStream(Sound));
            clip.start();
 
            Thread.sleep(clip.getMicrosecondLength()/1000);
        }
        catch(Exception e)
        {
 
        }
    }
	
	private Image zwrocZdjecie(String string) {
        Toolkit zdjecie = Toolkit.getDefaultToolkit();
        Image img = zdjecie.getImage(string);
		return img;
	}

	private JButton dodajPrzycisk(String string) {
		// TODO Auto-generated method stub
		JButton a=new JButton(string);
		a.setToolTipText(string);
		a.setBounds(prawa,gora,szerokosc,wysokosc);
		gora+=125;
		a.setVisible(true);
		a.setFont(new Font("Raanana", Font.BOLD, 25));
		a.setBackground(Color.BLACK);
		a.setForeground(Color.white);
		return a;
	}

	@Override
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

	}


	

}


1

Wywal Thread.sleep()

0

Wiesz może jeszcze w jaki sposób użyć loop, żeby powtarzało się w nieskończoność?

0
clip.setLoopPoints(...);
clip.loop(...);

Szczegóły są tu: https://docs.oracle.com/javase/8/docs/api/javax/sound/sampled/Clip.html

0

Jeśli chcesz powtarzać całość utworu, to możesz użyć taki kod:

            URL soundFile = new URL("file:C:/Users/Krzysiek/Desktop/muzyka.wav");
            AudioClip clip = Applet.newAudioClip(soundFile);
            clip.loop();

1 użytkowników online, w tym zalogowanych: 0, gości: 1