Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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().

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.

geht leider auch nicht :S

ausgabe ist:

/sound_datei.mid

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).

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
Natü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);

[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?

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();

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

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();

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.