Odtwarzanie dzwieku

0

Witam,
próbuje po naciśnięciu klawisza w aplikacji odtworzyć dźwięk ale niestety coś nie działa:
(plik z dzwekiem znajduje się folderze projektu)

Oto kod:

			AudioClip clip;
			try
			{
				clip = Applet.newAudioClip(new URL("file: asd.wav"));
				clip.play();
			} catch (MalformedURLException e1)
			{
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
0

A co wypisuje na ekranie ta instrukcja e1.printStackTrace();?

0

nic sie nie wypisuje, konsola jest pusta

0

Usuń spacje new URL("file:asd.wav").

0

nic to nie dało

0

A to jest aplet czy aplikacja desktopowa?
Jeśli desktopowa, plik asd.wav jest w folderze projektu, uruchamiasz program z IDE, to nie wierzę w ciszę.

0

aplikacja, uruchamiam przez Eclipsa i jest cisza...

0

Plik asd.wav jest w katalogu projektu? Tak to mniej więcej wygląda?
projekt.png

0

u mnie wyglada to tak

0

Ja pliku asd.wav nie widzę.

0

to jest plik sound.wav po prostu tyle razy zmienialem że już nawet próbowałem ze zmiana nazwy pliku.
Teraz po prostu ta linijka wyglada tak:

clip = Applet.newAudioClip(new URL("file:sound.wav"));
0

Albo Ci ktoś ukradł kartę dźwiękową, albo ten kod

            try
            {
                clip = Applet.newAudioClip(new URL("file:sound.wav"));
                clip.play();
            } catch (MalformedURLException e1)
            {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

się nie wykonuje. Dopisz wiersz

            try
            {
                System.out.println("Teraz będę grał");
                clip = Applet.newAudioClip(new URL("file:sound.wav"));
0

no napis się wyswietla....

0

Może w pliku jest cisza albo plik jest uszkodzony, przesłuchałeś go w innym programie?

0

A głośniki masz włączone? ;p
A może plik jest uszkodzony?
Może coś masz nie tak ze sterownikami do karty?
Normalnie (poza apką) dźwięki ci działają?

0

To jest dziwne bo spraawdziłem 3 rózne pliki z rożnych stron i odpalałem to na dwóch kompach.
Jest możliwe ze coś z Eclipsem jest nie tak ?

0

To uruchom program spoza Eclipsa.

0

Nic to nie dało

0

po zmianie MalformedURLException na łapanie Exception coś się wypisuje?

0

i nie znam javy ale czy czasem nie jest tak że AudioClip clip jest zmienną lokalną wewnątrz funkcji a .play jest asynchroniczne więc po wyjściu z funkcji clip jest od razu niszczony przez GC? W związku z tym AudioClip clip powinno być zmienną wewnątrz klasy, nie wewnątrz funkcji?

  1. czy jak wstawisz print za .play() to się coś pokazuje?
0

tak wyświetla się normalnie jak dam printa za play.
Moze niech ktoś zrobi cały projekt w Eclipsie i go tutaj wstawi ja go zaimportuje i spróbuje uruchomić.

0

Proszę bardzo

0

A, że się tak zapytam... pełną ścieżkę do pliku próbowałeś wpisać w URL ?

0

A jak importujesz?

  • stwórz nowy projekt o dowolnej nazwie (np. sounds),
  • wybierz File => Import => General => Archive File,
  • import.png
0

Dobra twoj projekt działa, ale dlaczego np cos takiego nie działa?

        try
        {
            URL bgSoundFile = new URL("file:train.wav");
            AudioClip train = Applet.newAudioClip(bgSoundFile);
            URL beepFile = new URL("file:whistle.wav");
            AudioClip whistle = Applet.newAudioClip(beepFile);
            train.play();
            whistle.play();

        }
        catch (MalformedURLException e)
        {
            System.out.println("Zły URL: "+e.getMessage());
        }
1

Przyczyną kłopotów (również w Twoim projekcie) jest koniec programu - clipy są odtwarzane przez ułamek sekundy.

public class TrainWhistle extends JFrame
{
    private AudioClip train = null;
    private AudioClip whistle = null;
    public static void main(String[] args)
    {
    	new TrainWhistle();
    }
    public TrainWhistle()
    {
    	JButton b = new JButton("Graj");
    	b.addActionListener(new ActionListener()
    	{
    		public void actionPerformed(ActionEvent ae)
    		{
    			train.play();
    			whistle.play();
    		}
    	});
    	add(b);
    	pack();
    	setLocationRelativeTo(null);
    	setDefaultCloseOperation(EXIT_ON_CLOSE);
    	setVisible(true);
        try
        {
            URL bgSoundFile = new URL("file:train.wav");
            train = Applet.newAudioClip(bgSoundFile);
            URL beepFile = new URL("file:whistle.wav");
            whistle = Applet.newAudioClip(beepFile);

        }
        catch (MalformedURLException e)
        {
            System.out.println("Zły URL: "+e.getMessage());
        }
    }
}

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