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"));

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