aplet i muzyka

Odpowiedz Nowy wątek
2008-02-02 22:10
0

Mam kłopot, muszę zrobić stronę na konkurs, nie mogę używać żadnych serwerów, więc aplet musi mieć dostęp do lokalnych zasobów (płyty CD ze stroną). Muszę jeszcze tylko osadzić na stronie jakieś tło dźwiękowe. Niestety Firefox w którym strona ma działać nie ma zainstalowanego pluginu odtwarzającego głos, więc jedyny sposób to dźwięk przez javę. Mam taki prosty kod:

public class powstWlkpMusic extends java.applet.Applet {

    File path;
    AudioClip ac;

    public void init() {

            path = new File("music.wav");
            try {
                ac = this.getAudioClip(path.toURL());
                ac.loop();
            } catch (Exception ex) {
            }   

    }

    public void destroy() {
        try{
            ac.stop();
        }catch (Exception ex){

        }
    }
}

Podczas testów w NetBeans wszystko działa, ale przeglądarka zwraca

java.security.AccessControlException: access denied (java.io.FilePermission . read)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkRead(Unknown Source)
    at java.io.File.list(Unknown Source)
    at powstWlkpMusic.init(powstWlkpMusic.java:31)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Proszę o pomoc, pracę muszę dodać do przyszłego wtorku.

Pozostało 580 znaków

2008-02-02 22:19
0

No normalne :) Applety nie mają dostępu do żadnych zasobów lokalnych. Moja propozycja to dodaj plik music.wav do jara za pomocą getResorce() z ClassLoadera pobrać plik z jara.

Pozostało 580 znaków

2008-02-02 22:28
0

dzięki, zrobiłem to, tylko nie mogę znaleźdź sposobu na dodanie tego pliku do jara, jak mogę to zrobić w NetBeansie?

Pozostało 580 znaków

2008-02-02 22:33
0

Najszybciej to olać NB i za pomocą zwykłego winzipa dodać. Plik jar to w ogólności archiwum zip

Pozostało 580 znaków

2008-02-02 22:37
0

ok, znalazłem sposób, dodałem plik do katalogu z kodami źródłowymi, to dorzucił, a jeśli chodzi o archiwum to podczas dodawania pojawiło mi się "Compres operation is not alowed for that folder".
Ciągle jakieś kłopoty, teraz mi nie chce pliku dodać, wiesz może jak umieścić aplet, który jest w jarze zapakowany? ;-D

Używam takiego kodu:

<APPLET codebase="music/powstWlkpMusic.jar" code="powstWlkpMusic.class" width=10 height=10></APPLET>

plik jar jest w katalogu "music" i nazywa się "powstWlkpMusic.jar", a plik class "powstWlkpMusic.class"

Pozostało 580 znaków

2008-02-02 22:45
0

http://java.sun.com/docs/book[...]yment/applet/deployindex.html

Uruchamianie appletów. Polecam jako lekturę na wieczór :)

Tag <applet / > to zuo .Lepiej używać kombinacji Object i Embed

Pozostało 580 znaków

2008-02-02 22:49
0

Dzięki, znalazłem sposób i niestety wróciłem do punktu wyjścia:

public class powstWlkpMusic extends java.applet.Applet {

    AudioClip ac;

    public void init() {

            ClassLoader cl = ClassLoader.getSystemClassLoader();

            try {
                ac = this.getAudioClip(cl.getResource("music.wav"));
                ac.loop();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
    }

    public void destroy() {
        try{
            ac.stop();
        }catch (Exception ex){

        }
    }
}

i bład:

java.security.AccessControlException: access denied (java.io.FilePermission . read)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkRead(Unknown Source)
    at java.io.File.list(Unknown Source)
    at powstWlkpMusic.init(powstWlkpMusic.java:31)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Chyba mam pecha.

Pozostało 580 znaków

2008-02-02 22:53
0
ClassLoader cl = powstWlkpMusic.class.getClassLoader();

??

Pozostało 580 znaków

2008-02-02 22:55
0

;-( [???] ;-( :-[ Nadal to samo ;-(

Pozostało 580 znaków

2008-02-02 23:00
0

mam dosyć, teraz znowu nie moge załadować, idę spać.

Pozostało 580 znaków

2008-02-03 11:39
bogdans
0

Ja pobieram muzykę tak:
W pliku html jest cos takiego

<applet code="Looper.class" archive="Utwory.jar" height="40" width="300"></applet>

a w kodzie apletu

AudioClip muzyczka=getAudioClip(getCodeBase(),"sound.wav");
....
muzyczka.play();

nie wiem jakie typy plików muzycznych da się tak odtworzyć
pozdrawiam

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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