Odtwarzanie dźwięku w nowym wątku, niezidentyfikowany błąd. Nie znajduje dzwięku?

0

Witam.

Mam problem z odtwarzaniem dźwięku w nowym wątku... w sumie nie wiem czy ścieżke do pliku mam dobrą gdy ustawiam w ten sposób ( = new URL("dzwiek.wav") to program nie odnajduje pliku. plik znajduje się w folderze aplikacji. Gdy używam ( = new URL("file: dziwek.wav") to znów debuger wyrzuca błąd source not found, tylko tym razem nie wypisuje tekstu w konsoli który ma się pojawiać w przypadku wystąpienia wyjątku.

public class Ball 
{
	String sciezka = "ping.wav";
	URL url; 
	AudioClip clip;
	private Image Ball = new ImageIcon("earth.png").getImage();
	private int x = 0;
	private int y = 0;
	private int dx = 1;
	private int dy = 1;
	private int szerokosc = Ball.getHeight(null);
	private int wysokosc = Ball.getWidth(null);
	private Thread watek;
	public void moveBall(JPanel panel)
	{
		watek = new Thread(new RunSound());
		Rectangle rect = panel.getBounds();
		x +=dx;
		y += dy;
		if(y + wysokosc >= rect.getMaxY())
		{
			watek.start();
			dy = - dy;
		}
		if(y  <= rect.getMinY())
		{
			watek.start();
			dy = - dy;
		}
		if(x + szerokosc >= rect.getMaxX())
		{
			watek.start();
			dx = -dx;
		}
		if(x <= rect.getMinX())
		{
			watek.start();
			dx = -dx;
		}
		
		
	}
public class RunSound implements Runnable
	{
		public void run()
		{
			try
			{
				url = new URL("file: ping.wav");
				clip = Applet.newAudioClip(url);
				clip.loop();
			}catch (IOException e)
			{
				System.out.print("nie udało się otworzyć dzwięku!!!");
			}
			
		}
	}
}

Ktoś wie co tu jest nie tak??

1
URL url = new File("dzwiek.wav").getURL()

Powinno zadziałać o ile plik "dzwiek.wav" znajduje się w tym samym folderze co klasa.

0

No niestety nawet mi nie wykrywa takiej metody jak getURL... jest metoda toURL ale ta nie działa. Dla pewności plik dźwiękowy wrzuciłem do każdego folderu :-P;

0

No i nic... nie działa... próbowałem już chyba wszystkiego...
Nawet to nie działa:

try {
			AudioCli clip = Applet.newAudioClip(
			new URL("file://c://dzwiek.wav"));
			clip.play();
			
			} catch (IOException e) {
			System.out.println("Nie udalo sie");
			}

Nie wywala żadnego błędu ale dźwięk się nie odtwarza... zastanawiam się czy to na pewno wina kodu...

1

Na szybko wpisałem coś takiego:

public static void main(String[] args) throws MalformedURLException {
        AudioClip clip = Applet.newAudioClip(
        new URL("file:dzwiek.wav"));
        clip.play();
}

i działa. Upewnij się, że masz dobry adres do tego pliku z dźwiękiem.
Przypadkiem nie dałeś odwrotnie slashy?

0

Wklepałem ten sam kod u siebie i nic... nie wywala błędu ale dźwięku nie słychać... możliwe że to coś z Javą? Dodam że mam windows 8.

1

Skoro masz na c (zwróć uwagę na wielkość liter) to napisz to tak:

new URL("file:c:/dzwiek.wav"));

ewentualnie jak masz C: to

new URL("file:C:/dzwiek.wav"));

Jesteś pewien, że plik nazywa się tak jak podałeś i jest na dysku C bez żadnego folderu?
Nie zapomnij o włączeniu głośników.

0

Próbowałem już wszystkie te sposoby... tak dźwięk znajduje się na dysku C i we wszystkich folderach projektu... Głośników nie mam bo pracuję na słuchawkach, ale głoś w komputerze mam normalnie.

1

To kliknij właściwości pliku i wklej ścieżkę do niego.
edit:
Zrób raczej tak:

new URL("file:///C:/dzwiek.wav"));
0

Tak teraz działa! Dzięki Ci wielkie.

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