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

2014-03-02 19:44

Rejestracja: 6 lat temu

Ostatnio: 4 lata temu

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??

edytowany 1x, ostatnio: dejmien, 2014-03-02 19:45

Pozostało 580 znaków

2014-03-02 21:26

Rejestracja: 6 lat temu

Ostatnio: 3 lata temu

Lokalizacja: Kraków

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

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

Pozostało 580 znaków

2014-03-02 21:33

Rejestracja: 6 lat temu

Ostatnio: 4 lata temu

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;

Oczywiście chodziło o toURL() ;) - Vebb.cn 2014-03-03 17:58

Pozostało 580 znaków

2014-03-02 21:42

Rejestracja: 6 lat temu

Ostatnio: 40 minut temu

Lokalizacja: Kraków

1

Zobacz może na ten temat: http://stackoverflow.com/ques[...]ava-trouble-using-audio-clips

Pozostało 580 znaków

2014-03-02 22:58

Rejestracja: 6 lat temu

Ostatnio: 4 lata temu

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...

Pozostało 580 znaków

2014-03-02 23:11

Rejestracja: 6 lat temu

Ostatnio: 40 minut temu

Lokalizacja: Kraków

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?

edytowany 2x, ostatnio: szweszwe, 2014-03-02 23:13

Pozostało 580 znaków

2014-03-02 23:39

Rejestracja: 6 lat temu

Ostatnio: 4 lata temu

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.

Pozostało 580 znaków

2014-03-02 23:58

Rejestracja: 6 lat temu

Ostatnio: 40 minut temu

Lokalizacja: Kraków

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.

edytowany 3x, ostatnio: szweszwe, 2014-03-03 00:38

Pozostało 580 znaków

2014-03-03 00:06

Rejestracja: 6 lat temu

Ostatnio: 4 lata temu

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.

Pozostało 580 znaków

2014-03-03 00:08

Rejestracja: 6 lat temu

Ostatnio: 40 minut temu

Lokalizacja: Kraków

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

new URL("file:///C:/dzwiek.wav"));
edytowany 3x, ostatnio: szweszwe, 2014-03-03 00:24
Tam wcześniej patrzę to napisałem coś innego niż miałem napisać. Spróbuj to co tutaj podałem. :] - szweszwe 2014-03-03 00:39

Pozostało 580 znaków

2014-03-03 00:46

Rejestracja: 6 lat temu

Ostatnio: 4 lata temu

0

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

Przypominam, że jeśli uważasz wątek za zakończony, to wypadałoby podziękować pomocnikom rozdając plusy pomocnym postom i zaznaczając fajeczkę przy poście rozwiązującym problem; - furious programming 2014-03-03 10:48

Pozostało 580 znaków

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