# File in Applet laden



## grudge (24. Mrz 2009)

Hallo Freunde!

Ich habe ein kleines Porblem bei einem großen Applet . Ich will mp3 abspielen, hab dafür auch bereits geeignete Packete. Ich muss nur die Methode play(File) aufrufen. 

Ich habe dabei Probleme das File vom server zu laden. Es liegt zB im Ordner "data/musik.mp3". Wie kann ich jetzt das File in der init() Methode laden, auch so, dass irgendein Tracker (bei Bilder zB MediaTracker) darauf wartet. Ich weiß nicht wie ich den Pfad (mit codebase) übergeben soll.

Es soll dann so (oder so ähnlich)aussehen:

```
File musik;
init()
{
musik = new File(???);
}
```

Viele Grüße
Sebastian


----------



## L-ectron-X (24. Mrz 2009)

MediaTracker arbeitet meines Wissens nach immer noch nur mit Grafikdateien.

Damit du Dateien laden kannst, die sich auch auf dem Server befinden, musst du mit getCodeBase() die relative URL ermittelt werden. Ansonsten wird auf der Festplatte des Clients nach der Datei gesucht, was nicht immer gewollt ist bzw. funktioniert und außerdem ein signiertes Applet voraussetzt.

Um ausgehend von der Codebase (Speicherort des Applets) zu anderen Resourcen auf dem Server zu navigieren, hängst du die Verzeichnisnamen hinten an.

Bsp:

```
url = new URL(getCodeBase(), "./data/musik.mp3");
```

wenn deine Datei ausgehend vom Speicherort deines Applets in einem Unterverzeichnis namens _data_ liegt.


----------



## grudge (24. Mrz 2009)

Hallo und danke fürs erste. Mein Problem ist nur, dass ich ja diese URL den File Operator irgendwie übergeben muss:

```
File musik = new File(String)
```

Dieser Operator akzeptiert keine URL sondern nur einen String. Mit der Methode URL.toString() bin ich leider auch noch nicht weiter gekommen .

mfG
Sebastian


----------



## L-ectron-X (24. Mrz 2009)

Warum nicht? Was ist das Problem dabei?


----------



## grudge (24. Mrz 2009)

Ah ich denke ich habs rausgefunden. Wenn ich die Methode URL.toString verwende bekomme ich etwas wie:
(auf meiner Platte)
"file:C:/..../etc./data/musik.mp3"

ich brauche aber 
File f = new File("C:/..../etc./data/musik.mp3");

Also im Klartext:
Ich muss das "file:" rauslöschen ...

 naja ob es eine sauberere Lösung gibt ? ?


----------

