![]() |
Wav-Player für Java
Hallo.
In meinem Informatikkurs programmieren wir momentan ein Textadventure in Java. Nun würde ich da gerne im Hintergrund Musik laufen lassen. Also suche ich eine Klasse die *.wav Dateien abspielt. Habe auch schon über Google gesucht, aber nichts gefunden was funktioniert hat bzw. bei einer Klasse meckert der Java-Editor immer wegen non-static und static rum. Ich hab keine Ahnung wie ich das umgehen kann. Wenn ich die Methode zum abspielen der Datei aufrufe beschwert sich der Editor darüber, dass die Methode non-static ist, aber der Rest eben static. Ein Problem, welches irgendwie immer bei Java auftritt...so kommt es mir jedenfalls vor. Hat wer einen Vorschlag oder eine funktionierende Klasse? Gruß Aranval |
hab bissal geguggt hoffendlich hilft dir das weiter ;)
für wave [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] bedanken wäre nett! greetz |
Diese Klasse habe ich auch schon gefunden, trotzdem danke. Sie funktioniert nur leider nicht =(
Folgende Fehlermeldung erscheint: GUI.java:314:15: non-static method run() cannot be referenced from a static context AePlayWave.run(); Hat wer ne Idee wie man das lösen könnte? Vielleicht helfen ein paar weitere Informationen: Wenn ich das Programm starte wird ein Fenster geöffnet mit verschiedenen Buttons. Wenn ich auf den "Start"-Button drücke, soll unter anderem der Sound abgespielt werden. |
Ich hab die Klasse gerade mal getestet und funktioniert. Daher würde ich annehmen dass du bei der Implementierung ihrgendwas falsch machst. Vielleicht postest du mal einen Quellcode ausschnitt.
|
Okay, hier ist er:
Zitat:
|
Ah Ok, ich weis jetzt nicht inwiefern du dich mit Threading in Java auseinandergesetzt hast aber hier mal eine kleine Erläuterung.Die Klasse AePlayWave erweitert die Klasse Thread, Threads haben in Java immer eine run()-Methode die wenn richtig verwendet , nebenläufig ausgeführt werden.
Was du versucht ist eine statische Methode der Klasse AePlayWave namens run() aufzurufen, die es jedoch nicht gibt. Richtig wäre ... //Musik starten new AePlayWave("deine_wav.wav").start(); ... Via start() wird der Thread in den Zustand runnable versetzt. Wie und wann genau die run() Methode aufgerufen wird entscheidet der sogennante Scheduler der die auf deinem System laufenden Threads organisiert. Genaueres kann man ja bei Bedarf nachlesen, aber so müsste es klappen. |
Vielen Dank, die Zeile hat er schon mal geschluckt =)
Bin was Java angeht ein ziemlicher Anfänger. Habe erst seit ca. 1 Jahr Informatik und wir machen immer nur sehr bescheidene Fortschritte. Wie kann ich jetzt also erreichen, dass die Soundfile im Programm selbst abgespielt wird, wenn ich den entsprechenden Button drücke? |
Wenn ich dich richtig verstanden habe , willst du wissen wie man generell auf Button-Events reagiert.
Normalerweise benutzt man in Java dafür einen ActionListener, es gibt zwar verschiedene richtige Wege diesen zu implementieren aber für genaueres kannst du ja bei Bedarf NAchlesen. Da ich bei mir an der Uni ein Tutorium in Objektorientierter Pogrammierung gebe hab ich einige Beispiele dazu, eines davon hab ich mal für dich soweit umgeschrieben das bei Knopfdruck eine Wav abgespielt wird. Hoffe das löst dein Problem komplett. Zitat:
|
Zitat:
Vielen Dank für deine Player-Klasse. Ich habe mal versucht Sachen daraus in mein UI zu übernehmen.. leider klappt das nicht so ganz :/ Hier einige Fehlermeldungen: Hier habe ich an mein UI "implements ActionListener" anzuhängen. Zitat:
Zitat:
Dann habe ich auch mal testweise deine Klasse so übernommen und mit dem JavaEditor erstellt. Beim kompilieren kommt das hier: Zitat:
Mir sagen die ganzen Fehlermeldungen leider überhaupt nix =( Was habe ich falsch gemacht? |
Erstmal wäre es gut zu wissen ob bzw. mit welcher IDE du arbeitest.
Desweiteren merkt man bei dir, das es an den Grundlagen in der Java Programmierung fehlt, soll keine Kritik sein und du hast ja selber gesagt das du Java bezüglich noch Anfänger bist. Z.B merkt man das du nicht weist was eine Abstrakte Klasse oder ein Interface ist was jedoch eine Vorraussetzung für die GUI Programmierung ist. Daher ein gutgemeinter Rat von mir, nochmal die Java Grundlagen zu wiederholen bevor du erweiternde Themen angreifst. Jedoch helf ich trotzdem gerne und hier zu deinen Problemen. Zitat:
Zitat:
Zitat:
(hier kann dir eine gute IDE sehr viel Arbeit abnehmen, wobei ich auch der Meinung bin das man alles was einem eine IDE an Arbeit abnimmt auch ohne können sollte). |
Joa das kann gut sein, dass mir da Grundlagen fehlen. Ich nehm das auch nicht als Kritik, weil es einfach stimmt. Ich kann nur das, was uns unser Lehrer uns beigebracht hat und das Ergebnis sieht man ja hier :D
Der kann auch nicht wirklich viel... Ich versuch einfach die Projekte mit "größeren" Klassen aufzupeppen. Eigentlich klappt das mit Google immer ganz gut...aber natürlich mit Ausnahmen. Von daher weiß ich nicht, ob ich da jetzt weiter dran bleiben will oder es einfach lasse... Was würdest du mir raten?^^ Dran bleiben oder sein lassen :D |
Kommt immer darauf an welche Interessen der jeweilige hat.
Wenn es darum geht das du das Programmieren als zu schwierig empfindest würde ich sagen, dran bleiben sieht manchmal schwieriger aus als es eigentlich ist. Meine Empfehlung, einfach mal ein Buch schnappen und von vorne durcharbeiten. Ich persöhnlich arbeite gern mit den Java Tutorials von Sun. [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.