Veröffentlicht 2. Oktober 200618 j Tag auch, hab ein kleines Problemchen. Und zwar find ich nirgends, ich hab auch schon genug rumprobiert, etwas, wie ich Soundfiles die im Projektverzeichnis liegen, abspielen kann. bei URL file = new URL ("file:///sound_datei.mid"); wird auf C:/ gesucht. Und wenn ich´s mit URL file = new URL (getCodeBase(),"sound_datei.mid"); versuche, sagt mir der Compiler, dass er die Methode getCodeBase() nicht kennt - das gleiche auch bei getDocumentBase().
2. Oktober 200618 j ich bin mir nicht ganz sicher aber muss du ihm nicht noch sagen das er im aktuellen Verzeichnis suchen soll, also URL file = new URL ("file:///./sound_datei.mid"); Die Api sagt folgendes : If the spec's path component begins with a slash character "/" then the path is treated as absolute and the spec path replaces the context path.
2. Oktober 200618 j Dann lass dir doch mal mit file.getPath(); den Pfad der URL ausgeben. Vielleicht erkennen wir dann worans hakt
2. Oktober 200618 j Das sieht doch schon ganz richtig aus. Welches fehlerhafte Verhalten tritt den bei der Ausführung auf ?
2. Oktober 200618 j der sound wird nur ausgegeben, wenn die sound datei auf C:/ liegt und nur genau da, das wär dann als pfad C:/sound_datei.mid . da sie aber in C:/diesunddas/unddasunddies/ liegt, hört man nix (sie wird nicht abgespielt).
3. Oktober 200618 j Und wenn ich´s mit URL file = new URL (getCodeBase(),"sound_datei.mid"); versuche, sagt mir der Compiler, dass er die Methode getCodeBase() nicht kenntNatürlich nicht. Ich gehe mal davon aus, dass du diese Methoden aus deiner eigenen Klasse heraus aufrufst. Und solange du eben diese Methoden nicht implementiert hat wird kein Compiler dieser Welt wissen, wo er danach suchen soll. Zu deinem Problem: Ein wenig von hinten durch die Brust ins Auge und ungetestet aber funktionieren könnte: File currentDirectory = new File(".").getCanonicalFile(); URL currentURI = currentDirectory.toURI(); URI targetURI = currentURI.resolve("foo/bar/sound_datei.mid"); File targetFile = new File(targetURI);
3. Oktober 200618 j [edit] nachdem ich java.io.*; importiert habe kommen nur noch diese 2 fehler: C:\Dok.....\DOT.java:164: incompatible types found : java.net.URI required: java.net.URL URL currentURI = currentDirectory.toURI(); ^ C:\Dok.....\DOT.java:165: cannot find symbol symbol : method resolve(java.lang.String) location: class java.net.URL URI targetURI = currentURI.resolve("foo/bar/sound_datei.mid"); ^ ich denke mal mit "foo/bar/" meinst du das verzeichnis, wo die datei wirklich drin liegt oder?
3. Oktober 200618 j nachdem ich java.io.*; importiert habe kommen nur noch diese 2 fehler:Darum schrieb ich ungetestet. Ein wenig Mitdenken ist durchaus noch gefordert. In diesem Falle muss es heissen: URI currentURI = currentDirectory.toURI();
3. Oktober 200618 j Ein wenig Mitdenken ist durchaus noch gefordert. ;P ^^'' von "URI" hab ich noch nie was gehört und dadurch das du immer so super antworten gibst (wort wörtlich "super", fast wie ein "Guru" , hehe...^^''), dachte ich das ist schon richtig so. mal nebenbei(wo wir grad dabei sind), hm....wie starte ich denn jetzt so die datei?/ wie änder ich die URI wieder in URL (falls man das so machen soll)? denn newAudioClip(java.net.URL) in java.applet.Applet cannot be applied to (java.net.URI) Applet.newAudioClip(targetURI).loop(); und newAudioClip(java.net.URL) in java.applet.Applet cannot be applied to (java.io.File) Applet.newAudioClip(targetFile).loop(); danke schon mal im vorraus für eine professionelle antwort^^ mfg Kaeyu
3. Oktober 200618 j wie änder ich die URI wieder in URL (falls man das so machen soll)?Es gibt eine Java API - in der könnte man eventuell einfach mal nachsehen, was eine URI ist und wofür man sie verwenden kann. Dort steht dann unter anderem, dass man sie ganz einfach in eine URL überführen kann. URI fooAsURI = URI.create("foo/bar/"); URL fooAsURL = fooAsURI.toURL();
4. Oktober 200618 j Wenn ich eventuell auch mal die Zeit dafür bekommen würde, von meiner mum, dann würd ich das da auch finden. Doch da sie mich TOTAL einschränkt, bin ich nicht dazu in der Lage. P.S.: Es gibt genügend APIs, ich hab auch genügend Lesezeichen, aber die Zeit zum durchforsten des Ganzen fehlt halt. bitte,danke. mfg Kaeyu
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.