Abspielen von Sounds in Java3D

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo!
Ich habe eine Frage zu Java3D.
Und zwar habe ich vor, dass bei einer Kollision von zwei Objekten ein Sound (wav oder mp3....eigentlich egal) abgespielt wird. Ich habe es momentan soweit, dass bei einer Kollision eine Ausgabe auf der Systemkonsole gemacht wird. Meine Frage ist nun, wie ich einen Sound aufrufen kann, dass er abgespielt wird?
Danke im Voraus!
 

Oxygenic

Bekanntes Mitglied
Im Falle einer kollision soll der Sound vermutlich vom Ort des Geschehens her zu hören sein!? In dem Fall empiehlt es sich, einen PointSound zu verwenden. Dieser wird genau wie alle anderen Nodes in den SceneGraphen eingehängt.

Details dazu: http://java.sun.com/products/java-m...PI/j3dapi/javax/media/j3d/MediaContainer.html und http://java.sun.com/products/java-m..._3_API/j3dapi/javax/media/j3d/PointSound.html sowie http://java.sun.com/products/java-m...J3D_1_3_API/j3dapi/javax/media/j3d/Sound.html
 

Drathy

Mitglied
Vielen Dank für die schnelle Antwort (hab mich nun angemeldet :lol: )!
Zunächst einmal zur Art vom Sound: Der braucht nicht vom Ort des Geschehens her zu hören sein, hauptsache es komm überhaupt was... :wink: Ich wollte den Sound nur mal so testweise einbauen, damit man sowas schon mal gemacht hat....
Trotz der Hilfe komme ich aber irgendwie trotzdem nicht so richtig weiter. Es scheitert leider bereits beim Eingeben des Pfades für den Sound (er liegt einfach auch D:\ und heisst "EXPLODE.WAV") in den MediaContainer. Wie genau müsste ich den dann einladen?? Wäre super, wenn mir jemand das jemand posten könnte! Vom Konstuktor her eigentlich kein Problem, aber irgendwas haut da leider nicht hin.... :cry:
Wie gehe ich dann anschließend weiter vor? Ich schätze mal, den MediaContainer auf Sound verweisen und dann Sound an die root hängen....mal ganz umgangssprachlich beschrieben... oder?
Sorry, wegen der vielen Fragen, aber das ist erst mein erstes Semester in Java3D und der Prof konnte mir heute morgen auch nicht so spontan sagen, wie ich nen Sound einbaue...
Wäre echt top, wenn mir jemand weiterhelfen könnte.... :oops:
 

Oxygenic

Bekanntes Mitglied
MediaContainer erwartet einen URL, der übergebene String müsste also irgend was mit "file://D:/explode.wav" heißen. Wenn der Sound nur von irgendwo kommen soll, wäre der BackgroundSound-Node ausreichend, aber da Explosionen - speziell wenn sie von einer Kollision herrühren - realistischer wirken, wenn sie ortbar sind, würde ich trotzdem den PointSound empfelhen.
 

Illuvatar

Top Contributor
Ich versuche zur Zeit einen PointSound zu benutzen, kriege es aber nicht so ganz hin.
Damit habe ich es versucht:
Code:
             try{
                PointSound s = new PointSound (new MediaContainer (new File ("Sounds\\standardGotpoint.au").toURL()), 2.0f, new Point3f (0, 0, 0));
                s.setSchedulingBoundingLeaf (new BoundingLeaf (new BoundingSphere (new Point3d (0, 0, 0), 30.0d)));
                s.setPriority (10.0f);
                s.setContinuousEnable (false);
                s.setReleaseEnable (true);
                s.setLoop (1);
                BranchGroup brag = new BranchGroup();
                brag.addChild (s);
                s.setEnable (true);
                c.objects[posy - 1][posx - 1].getBG().addChild (brag); //c.objects[posy - 1][posx - 1] ist ein live  BranchGroup
              }catch (Exception e){e.printStackTrace();}
Es gibt keine Exception, AudioDevice ist natürlich gesetzt, HintergrundMusik funzt auch, bloß hört man nichts.
 

Illuvatar

Top Contributor
Tja, aber:
Illuvatar hat gesagt.:
Code:
new MediaContainer (new File ("Sounds\\standardGotpoint.au").toURL()), 2.0f, new Point3f (0, 0, 0)
Das File-Objekt wird mit toURL() in eine URL umgewandelt.
Ich hab auch schon eine selbstgeschriebene Konvertierungsmethode probiert.
 

Oxygenic

Bekanntes Mitglied
Ah, das habe ich glatt übersehen. Trotzdem nicht sehr elegant, da "dir\\file" nicht sonderlich plattformunabhängig ist. Was liefert toURL() denn tatsächlich zurück?

Wird brag denn jemals live?
 

Illuvatar

Top Contributor
Ja, brag wird live.

Ich benutze mittlerweise auch nicht mehr File#toUrl sondern eine selbstgeschriebene Methode.
Path-Separator ist dann auch nicht mehr so wichtig, da meine Methode \\ benutzt.
Das File wird dann in file:\\\D:/java\selbst\PacMan\Sounds\standardGotpoint.au umgewandelt.

Kennst du ein Beispiel, das einen PointSound verwendet (hab mit Google keins gefunden)?

Edit: Ich benutze jetzt auch einen HeadspaceMixer, funktioniert trotzdem nicht.
Edit2: Ich habs jetzt auch mit der OpenGL-Version probiert, aber außer einer massiven Performanceverschlechterung im ganzen Programm hat sich nix getan. (Benutz jetzt wieder DirectX)
 

Oxygenic

Bekanntes Mitglied
Illuvatar hat gesagt.:
file:\\\D:/java\selbst\PacMan\Sounds\standardGotpoint.au

Kennst du ein Beispiel, das einen PointSound verwendet (hab mit Google keins gefunden)?

Die Backslashes nach file: sind da auch nicht so ganz richtig. Ein Beispiel hätte ich, aber ich weiß nicht, ob dir das so viel nutzt:

Code:
   void createPointsound(XBranchGroup MyBranch)
      {
      Shape3D DirObject=new PointObj();

      DirObject.getAppearance().setMaterial(new Material(new Color3f(0f,0f,1.0f),new Color3f(0f,0f,1.0f),new Color3f(0f,0f,1.0f),new Color3f(0f,0f,1.0f),1f));
      if (PSnd!=null) PSnd.setEnable(false);
      MyBranch.addChild(newSymbolSwitch(DirObject));
      if (!GlobalSettings.GlobData.noAudioStreamMode)
         {
         float[] dist,gain;

         InputStream is=MainWin.Win.UniPanel.DLCacheMan.getFileStream(MainWin.Win.MainThreadMsgPipe,Cmd,DownloadCacheManager.SOUNDSTREAM|DownloadCacheManager.BLOCKING,false,true);
         StreamMC=new MediaContainer(is);

         PSnd=new PointSound(StreamMC,1.0f,new Point3f());
         PSnd.setCapability(PointSound.ALLOW_ENABLE_WRITE);
         if ((Flags & 0x00FF)==0x00) // linear attenuation
            {
            dist=new float[2];            gain=new float[2];
            dist[0]=0;                    gain[0]=1.0f;
            dist[1]=this.cobject_p2+0.1f; gain[1]=0f;
            }
         else if ((Flags & 0x00FF)==0x01) // (nearly) logarithmic attenuation
            {
            dist=new float[3];             gain=new float[3];
            dist[0]=0;                     gain[0]=1.0f;
            dist[1]=this.cobject_p2*0.75f;  gain[1]=0.5f;
            dist[2]=this.cobject_p2+0.1f;  gain[2]=0f;
            }
         else // sharp attenuation
            {
            dist=new float[3];             gain=new float[3];
            dist[0]=0;                     gain[0]=1.0f;
            dist[1]=this.cobject_p2*0.8f;  gain[1]=0.8f;
            dist[2]=this.cobject_p2+0.1f;  gain[2]=0f;
            }
         PSnd.setDistanceGain(dist,gain);
         PSnd.setInitialGain((float)(cobject_p4/100.0));
         PSnd.setSchedulingBounds(new BoundingSphere(new Point3d(),this.cobject_p2+0.1f));
         PSnd.setLoop((int)cobject_p1-1);
         PSnd.setEnable(true);
         MyBranch.addChild(PSnd); // insert the sound object
         }
      }

Ansonsten findest du unter http://java3d.virtualworlds.de/books.php eine deutssprachige doku, die Sounds auch noc hmal detailliert beschreibt.

cu

Oxy

http://forum.javacore.de - das Java-Forum!
http://www.3dchat.org - Welcome To The unreal World!
 

Oxygenic

Bekanntes Mitglied
Nachtrag: Das "Syntaxhighlighting" ist ja lustig, eigentlich ist das nur grün mit ein wenig blau...
 

Illuvatar

Top Contributor
Da das bei mir nicht so wichtig war, benutz ich jetzt ein java.applet.AudioClip.
Ich wollte PointSound halt mal ausprobieren.
Ich hab aber auch schon im java.sun.com-Forum gelesen, dass die Klasse recht verbuggt sein soll.
 
G

Guest

Gast
Hallo.

Ich habe ein ähnliches Problem allerdings konnt ich aus den Antworten keine relevante für mich herausfiltern.
Leider bin ebenfalls ziemlicher Neuling, sowohl was Java als auch Java3D un hoffe dringend auf eure Unterstützung.

URL eineURL;
try { eineURL = new URL("file:Lied.wav"); }
catch (Exception e)
{return null;}

MediaContainer eineAudiodatei = new MediaContainer();
eineAudiodatei.setCapability(MediaContainer.ALLOW_URL_WRITE);
eineAudiodatei.setCapability(MediaContainer.ALLOW_URL_READ);
eineAudiodatei.setURLObject(eineURL);
eineAudiodatei.setCacheEnable(true);

einAudioobjekt = new BackgroundSound();

einAudioobjekt.setSchedulingBounds(einEinflussbereich);

einAudioobjekt.setLoop(0);
einAudioobjekt.setInitialGain(1);
einAudioobjekt.setCapability(Sound.ALLOW_ENABLE_WRITE);
einAudioobjekt.setCapability(Sound.ALLOW_INITIAL_GAIN_WRITE);
einAudioobjekt.setContinuousEnable(false);
einAudioobjekt.setSoundData(eineAudiodatei);
dieWurzel.addChild(einAudioobjekt);

Mir wird kein Fehler angezeigt aber eine Audio-Ausgabe erfolgt auch nicht. Die angegebenen Objekte sind alle vorher definiert worden. Wäre super wenn mir jemand weiterhelfen kann...

Danke im Voraus.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Sounds abspielen Spiele- und Multimedia-Programmierung 11
S Sounds abspielen, ohne sie jedesmal neu zu laden Spiele- und Multimedia-Programmierung 8
S Uneffizientes Abspielen von Sounds?! Spiele- und Multimedia-Programmierung 4
N Totaler Absturz beim mehrmaligen Abspielen von Sounds Spiele- und Multimedia-Programmierung 5
0 Crashes beim Abspielen von Sounds unter Win98 Spiele- und Multimedia-Programmierung 12
M Audio Track einer Musik CD abspielen mittels vlcj-Bibliothek Spiele- und Multimedia-Programmierung 0
P .Wav Datei vor main-Methode abspielen? Spiele- und Multimedia-Programmierung 9
S AAC abspielen Spiele- und Multimedia-Programmierung 9
MABY Eine mp3 Datei in Java abspielen Spiele- und Multimedia-Programmierung 14
Blender3D VLCJ Video lässt sich nicht mehr abspielen nach mysql Installation Spiele- und Multimedia-Programmierung 1
K Sound im loop abspielen, wenn boolscher wert true ist Spiele- und Multimedia-Programmierung 3
J Musik abspielen Spiele- und Multimedia-Programmierung 11
C Midi abspielen und Listener anmelden? Spiele- und Multimedia-Programmierung 1
I Sound Dateien abspielen Spiele- und Multimedia-Programmierung 9
C Sound einfügen und abspielen Spiele- und Multimedia-Programmierung 6
H wma Datei abspielen: java.io.IOException: Resetting to invalid mark Spiele- und Multimedia-Programmierung 11
F Einen Sound mit veränderter Tonhöhe und Geschwindigkeit abspielen - Hilfe erbeten Spiele- und Multimedia-Programmierung 29
F Problem mit dem Abspielen von byte[] (Audioprogrammierung) Spiele- und Multimedia-Programmierung 2
C Problem mit Abspielen von Audio-Dateien Spiele- und Multimedia-Programmierung 3
F WAV Abspielen Spiele- und Multimedia-Programmierung 15
P Video in JAVA abspielen,... Spiele- und Multimedia-Programmierung 3
T Sound schneller abspielen Spiele- und Multimedia-Programmierung 4
Guybrush Threepwood Beste Möglichkeit zum Abspielen von MP3 Spiele- und Multimedia-Programmierung 3
StrikeTom .gif animation als image abspielen Spiele- und Multimedia-Programmierung 2
W CannotRealizeException (jmf) beim abspielen eines liedes Spiele- und Multimedia-Programmierung 3
P Sound auf zwei Lautsprechern getrennt abspielen Spiele- und Multimedia-Programmierung 9
A wav datei aus jar Abspielen Spiele- und Multimedia-Programmierung 7
N bei abspielen der wav datei fehler Spiele- und Multimedia-Programmierung 6
H JMF - Video Abspielen Spiele- und Multimedia-Programmierung 12
R Wave-Datei mit JLayer abspielen Spiele- und Multimedia-Programmierung 4
B videos abspielen Spiele- und Multimedia-Programmierung 2
B Frage zum Abspielen von Sounddateien Spiele- und Multimedia-Programmierung 2
Grevak Sounds im Spiel Spiele- und Multimedia-Programmierung 5
M Parallele Sounds Spiele- und Multimedia-Programmierung 4
ruerob Problem bei Fade-Out von Sounds Spiele- und Multimedia-Programmierung 3
R Kostenlose Sounds & Musik? Spiele- und Multimedia-Programmierung 3
N Wo Sounds downloaden Spiele- und Multimedia-Programmierung 5
M Images/Sounds für Spiele Spiele- und Multimedia-Programmierung 3
N Java3d in Eclipse einbinden Spiele- und Multimedia-Programmierung 4
Neumi5694 Java3D Viewer Beschriftung Spiele- und Multimedia-Programmierung 1
C Java3D Transformieren von obj. Datein Spiele- und Multimedia-Programmierung 0
M Cylinder anhand eines Vektors ausrichten (Java3d) Spiele- und Multimedia-Programmierung 0
Ruvok Java3D Tutorial gesucht Spiele- und Multimedia-Programmierung 5
U Hilfe bei Implementierung eines PointSounds in Java3D Spiele- und Multimedia-Programmierung 1
R Java3d ViewingPlatform erst Verschieben und dann RotationsInterpolator Spiele- und Multimedia-Programmierung 0
D Java3D - Blickfeld Spiele- und Multimedia-Programmierung 1
P Java3D Box Dimensionen und Positionierung Spiele- und Multimedia-Programmierung 1
E Java3D Objekt skalieren per JSlider/JButton Spiele- und Multimedia-Programmierung 10
S Java3D: Primitives zu einem Objekt kombinieren Spiele- und Multimedia-Programmierung 7
J Java3D - Textur laden geht nicht Spiele- und Multimedia-Programmierung 9
J Java3D - Farben vermischen sich Spiele- und Multimedia-Programmierung 7
T Java3D Rendering Problem Spiele- und Multimedia-Programmierung 7
S Java3D oder JMonkey? Spiele- und Multimedia-Programmierung 17
H Java3D - Textur aufs innere einer Sphere mappen Spiele- und Multimedia-Programmierung 9
C java 3d ohne Java3d Spiele- und Multimedia-Programmierung 28
Maxim6394 [Java3D] Probleme bei Kollision Spiele- und Multimedia-Programmierung 7
Maxim6394 [Java3D] lookAt Mausposition Spiele- und Multimedia-Programmierung 17
Maxim6394 [Java3D] Probleme mit KeyFrame Animationen Spiele- und Multimedia-Programmierung 9
K Java3D als Applet ohne Installation von Java3d Spiele- und Multimedia-Programmierung 6
D Java3D Installation: package javax.media.j3d not found Spiele- und Multimedia-Programmierung 5
C Java3D Texture Mapping Spiele- und Multimedia-Programmierung 2
W Java3D: Kanten die hinter einem Objekt liegen werden gezeigt Spiele- und Multimedia-Programmierung 2
W Java3D: Farbe von Objekten stimmt nicht mit übergebenem RGB-Wert überein Spiele- und Multimedia-Programmierung 9
M Eigene Renderengine ohne Java3D,etc. Spiele- und Multimedia-Programmierung 19
C Java3D Sound spielt nur einen Sound ab. Spiele- und Multimedia-Programmierung 8
A JAVA3D TransformGroup <--> Group Problem Spiele- und Multimedia-Programmierung 3
M [Java3D] Animation von mehreren Objekten Spiele- und Multimedia-Programmierung 7
W Java3D: Eckkoordinaten einer Box herausfinden Spiele- und Multimedia-Programmierung 18
T Java3D: Objekte platzieren und entfernen? Spiele- und Multimedia-Programmierung 7
T Java3D: Nur die Kanten des Würfels rendern? Spiele- und Multimedia-Programmierung 4
W Java3D setBounds(BoundingBox) Spiele- und Multimedia-Programmierung 6
T [gelöst] Java3D: Unerwünschte Rotation um die 3.Achse vermeiden? Spiele- und Multimedia-Programmierung 3
Bastie JAVA3D - WRL Transform Spiele- und Multimedia-Programmierung 9
G Eclipse Problem mit Java3d Spiele- und Multimedia-Programmierung 3
T Java3D - Lichtquelle einbauen Spiele- und Multimedia-Programmierung 7
jemandzehage java3d parallel und perspective view Spiele- und Multimedia-Programmierung 5
H Cinema 4D in Java3D importieren Spiele- und Multimedia-Programmierung 2
1 [Java3D] komplexes Projekt? Spiele- und Multimedia-Programmierung 10
P .obj-Datei in Java3D laden: ParsingErrorException Spiele- und Multimedia-Programmierung 7
C Java3D Lichtquelle beim Beobachter Spiele- und Multimedia-Programmierung 2
C Java3D Interaktion während Animation Spiele- und Multimedia-Programmierung 3
aze Java3D: Flächen teilen Spiele- und Multimedia-Programmierung 15
P Java3D Textur verzerrt Spiele- und Multimedia-Programmierung 3
aze Java3D: Gegenstände aufeinander zubewegen ohne Kollision Spiele- und Multimedia-Programmierung 4
D [JAVA3D] Es werden 2 Fenster erzeugt und auf dem falschen gezeichnet Spiele- und Multimedia-Programmierung 3
aze Java3D: leere Räume füllen Spiele- und Multimedia-Programmierung 2
aze Java3d:Helligkeit von Shape3D ändern Spiele- und Multimedia-Programmierung 2
S Einschätzung zu Java3D-Einstieg Spiele- und Multimedia-Programmierung 3
F Programm mit Java3D unter Linux laufen lassen Spiele- und Multimedia-Programmierung 3
I Vergleich von Java3D und OpenGL Spiele- und Multimedia-Programmierung 17
W Waterslide mit Java3D Spiele- und Multimedia-Programmierung 11
M Java3D Picking - falsche Objekte werden gepickt Spiele- und Multimedia-Programmierung 3
M [Java3D] Rotieren der Scene NICHT des POV Spiele- und Multimedia-Programmierung 4
F Jogl oder Java3D ? Spiele- und Multimedia-Programmierung 20
K Java3D Abfängerfrage Spiele- und Multimedia-Programmierung 3
aze Java3D:Farbige Flächen verschwinden lassen(Transparenz- oder Colorinterpolator?)) Spiele- und Multimedia-Programmierung 5
C Java3D PositionInterpolator Spiele- und Multimedia-Programmierung 3
G [Java3D] Probleme bei Animation Spiele- und Multimedia-Programmierung 4
E [JAVA3D] Kamerasteuerung Spiele- und Multimedia-Programmierung 3
E [JAVA3D] Schattenstrich durch die Szene Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben