URL

Dodaj kartkę Dodaj bana
Powód wlepienia kartki
Wybierz wątek docelowy z listy lub wpisz jego ID
  • Anonim

    Witam

    Tworzę dźwięk w mojej aplikacji, gdzie potrzebny mi jest obiekt typu URL
    nie mogę podać ścieżki z dysku, szukałem jakiś przykładów w necie, ale były same pokazujące wykorzystywane w internecie http ftp itp.

    W jaki sposób utworzyć obiekt klasy URL z adresem względnym lub bewzględnym z dysku?

    Pozdrawiam
  • KosciaK

    A dlaczego nie użyjesz File zamiast URL? A jak już się tak bardzo upierasz to o ile dobrze mi się zdaje to URI to jest to czego szukasz
  • Anonim

    Dokladnie, uzyj po prostu file.
    A jak koniecznie potrzebujesz URL, to moze zrob cos w tym rodzaju:

    File file = ...;/ /Twoj plik lokalny
    URL url = file.toURI().toURL();
  • Anonim

    O sposobie wyżej już myślałem i chyba jest najsensowniejszy; )

    Przy tym czego chciałem użyć dopuszczalny był tylko URL jako parametr

    poprostu chciałem wiedzieć jak można zrobić poprawnie.

    Pozdrawiam
  • Pan Pawełek

    file:///<ścieżka do pliku>
    np.
    file:///c:/katalog/katalog/plik
  • Anonim

    Witam ponownie

    niby robię wszystko jak powinno być, ale wciąż kompilator wyrzuca mi że nie ma takiego pliku podam kawałek kodu


    AudioClip[] music;
    music = new AudioClip[2];

    URL url = null;
    try{
    url = new URL("file:///d:/Arkanoid/scr/s ounds/runda1.wav");
    }catch( Exception e ){ e.printStackTrace(); };

    System.out.println( url.getPath() );

    music[0] = getAudioClip( url );

    I TU WYRZUCA:

    /d:/Arkanoid/scr/sounds/runda1 .wav
    Exception in thread "main" java.lang.NullPointerException
    at java.applet.Applet.getAppletCo ntext(Applet.java:187)
    at java.applet.Applet.getAudioCli p(Applet.java:295)
    at Sounds.<init>(Sounds.java:24)
    at MyPanel.<init>(MyPanel.java:88 )
    at MyFrame.create(MyFrame.java:44 )
    at MyFrame.<init>(MyFrame.java:22 )
    at Arkanoid.main(Arkanoid.java:21 )

    Process completed.

    a jak robię :

    File file = new File("runda.wav");
    url = file.toURI().toURL();

    music[0] = getAudioClip( url );


  • Anonim

    to wyrzuca to samo


    w zasadzie powinno zadziałać coś takiego

    music[1] = getAudioClip( getDocumentBase(), "runda2.wav" );

    a nie działa:(

    proszę o radę.
  • Anonim

    Jeżeli ktoś wie w czym jest problem, to proszę o szybką odpowiedź, bo niezwykle jest mi to potrzebne; (

    Aha ścieżka, którą tam podaję jest oczywiście poprawna(chociaż tutaj wkradł się błąd)

    Pozdrawiam
  • Eric Wu

    Czy przypadkiem nie próbujesz uruchomić appletu jako aplikację z command line (javaw.exe) zamiast jako applet w applet viewer lub przeglądarce?

    Albo może w aplikacji masz klasę, która rozszerza klasę JApplet, posiada funkcję mającą generować dźwięk i potem używasz pola prywatnego (np. private DzwiekowyApplet applet = new DzwiekowyApplet (url);) appletu w aplikacji żeby dodać funkcjonalność appletu do aplikacji Java (dźwięk)?

    Bo Twój błąd jest w "java.applet.Applet.getAppletC ontext (Applet.java:187)". Czyli null nie jest url, a kontekst appletu.

    Jeśli to pierwsze, to uruchamiaj applet jako applet - w przeglądarce lub applet viewer.

    Jeśli to drugie, to niestety tak nie zadziała. Tak wstawiony do wnętrza aplikacji applet nie ma kontekstu, więc nie będą w nim działać operacje na obrazkach ani dźwięki.

    Ale można spróbować tak:

    import sun.audio.*;
    import java.io.*;
    ...
    AudioStream as = new AudioStream (url.openStream());
    ...
    AudioPlayer.player.start(as);
    ...
    AudioPlayer.player.stop(as);

    Można też w kółko:

    AudioData d = as.getData();
    ContinuousAudioDataStream as = new ContinuousAudioDataStream (d);

    Wstawiając to do aplikacji bez appletów.