Java3D Point Sound

Status
Nicht offen für weitere Antworten.

Developer_X

Top Contributor
Hi, ich hab schon danach gegoogled und die Api gelesen, aber keine Beispiel gefunden, dass auf meinem Compúter funktioniert. Kann mir einer helfen, und mir ein Beispiel dazu geben, wie man den "Point Sound" verwendet, bitte?
 

Developer_X

Top Contributor
ich hab nicht mal ne Ahnung, wie ich das ganze angehen, könnte.
nach der Api zu Folge,
sollte das so gehen:
Java:
PointSound s = new PointSound("Pfad zum Sound",x,y,z,);
Hast du ein beispiel, ich find keins
 

Developer_X

Top Contributor
ich habs ma so ausprobiert klappt aber nicht fehler meldung ist auch dabei
Java:
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.net.MalformedURLException;
import java.net.URL;

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.behaviors.vp.*;       
	
	public class Test_Class extends Applet {       

    private SimpleUniverse universe ;
    private Canvas3D canvas;
    private BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 10.0), 1000.0);
    
      public void setupView() 
      { 
    	OrbitBehavior orbit = new OrbitBehavior(canvas,
                OrbitBehavior.REVERSE_ALL|OrbitBehavior.STOP_ZOOM);
        orbit.setSchedulingBounds(bounds);
        ViewingPlatform viewingPlatform = universe.getViewingPlatform();
        
        viewingPlatform.setNominalViewingTransform();
        viewingPlatform.setViewPlatformBehavior(orbit);       
        }       
          
        public BranchGroup createSceneGraph() {
        BranchGroup objRoot = new BranchGroup();       
        
  //hier!!!
        objRoot.addChild(new Bush().Bush());
        try {
			objRoot.addChild(new PointSound(new MediaContainer(new URL("F:/Rayman/Sound.Library/Pirates.wav")),2,2,2, 2));
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
  //hier!!!      
        Color3f lightColor = new Color3f(.6f,.6f,.6f);
        AmbientLight ambientLight= new AmbientLight(lightColor);
        ambientLight.setInfluencingBounds(bounds);
        objRoot.addChild(ambientLight);
        DirectionalLight directionalLight = new DirectionalLight();
        directionalLight.setColor(lightColor);
        directionalLight.setInfluencingBounds(bounds);
        objRoot.addChild(directionalLight);       
        return objRoot;       
    }       
     
    public void init() {
         BranchGroup scene = createSceneGraph();       
         setLayout(new BorderLayout());
         
         GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
         canvas = new Canvas3D(config);
         add("Center", canvas);       
        
         universe = new SimpleUniverse(canvas);       
         setupView();       
         universe.addBranchGraph(scene);
    }       
    public void destroy() {universe.removeAllLocales();}       
   
    public static void main(String[] args) {new MainFrame(new Test_Class(), 256, 256);}
}

Code:
Exception in thread "Thread-3" javax.media.j3d.SoundException: MediaContainer: setURL - bad URL
	at javax.media.j3d.MediaContainerRetained.setURLString(MediaContainerRetained.java:116)
	at javax.media.j3d.MediaContainerRetained.setURLString(MediaContainerRetained.java:94)
	at javax.media.j3d.MediaContainer.<init>(MediaContainer.java:95)
	at Plant.Test_Class.createSceneGraph(Test_Class.java:34)
	at Plant.Test_Class.init(Test_Class.java:48)
	at com.sun.j3d.utils.applet.MainFrame.run(MainFrame.java:267)
	at java.lang.Thread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at Plant.Test_Class.destroy(Test_Class.java:59)
	at com.sun.j3d.utils.applet.MainFrame$1.windowClosing(MainFrame.java:226)
	at java.awt.Window.processWindowEvent(Unknown Source)
	at java.awt.Window.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at Plant.Test_Class.destroy(Test_Class.java:59)
	at com.sun.j3d.utils.applet.MainFrame$1.windowClosing(MainFrame.java:226)
	at java.awt.Window.processWindowEvent(Unknown Source)
	at java.awt.Window.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at Plant.Test_Class.destroy(Test_Class.java:59)
	at com.sun.j3d.utils.applet.MainFrame$1.windowClosing(MainFrame.java:226)
	at java.awt.Window.processWindowEvent(Unknown Source)
	at java.awt.Window.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
 

Marco13

Top Contributor
Das Format für die URL stimmt nicht, wie man ... *gääähn* auch rausfinden würde, wenn man sich einmal die Mühe machen würde, sich die API-Doku von "URL" anzusehen. Übergib dem MediaContainer direkt den Pfad statt einer URL, dann könnte es gehen.
 

Developer_X

Top Contributor
hab ich schon probiert, dann kommt das:
Java:
			objRoot.addChild(new PointSound(new MediaContainer("F:/Rayman/Sound.Library/Pirates.wav"),2,2,2, 2));
Code:
Exception in thread "Thread-3" javax.media.j3d.SoundException: MediaContainer: setURL - bad URL
	at javax.media.j3d.MediaContainerRetained.setURLString(MediaContainerRetained.java:116)
	at javax.media.j3d.MediaContainerRetained.setURLString(MediaContainerRetained.java:94)
	at javax.media.j3d.MediaContainer.<init>(MediaContainer.java:95)
	at Plant.Test_Class.createSceneGraph(Test_Class.java:38)
	at Plant.Test_Class.init(Test_Class.java:53)
	at com.sun.j3d.utils.applet.MainFrame.run(MainFrame.java:267)
	at java.lang.Thread.run(Unknown Source)
 

Marco13

Top Contributor
OK, das würde man sehen, wenn man sich die MediaContainer-Doku ansehen würde :oops: : Dort muss ein URL-String übergeben werden, d.h. der String muss mit "file:" anfangen. Die absoluten Pfadangaben sollten dort auch raus, aber das nur nebenbei...
 

Developer_X

Top Contributor
etwa so?
Java:
objRoot.addChild(new PointSound(new MediaContainer("file:F:/Rayman/Sound.Library/Pirates.wav"),2,2,2, 2));
Funktioniert immer noch nicht
 

Developer_X

Top Contributor
oh du meinst, so, da kommt keine Fehlermeldung mehr, aber auch kein Sound, ich hör nichts, auch wenn ich den auf Punkt null setzte, und die Kamera auch auf Punkt null ist.
Java:
				objRoot.addChild(new PointSound(new MediaContainer(new URL("file:///F:/Rayman/Sound.Library/THEME.wav")),20,0,0,0));
 

Marco13

Top Contributor
Mal sinnlos unfundiert rumgeraten (was dich ja hoffentlich nicht stört :bae: ) : Vermutlich muss man dem PointSound auch noch passende SchedulingBounds geben...
 
M

MiDniGG

Gast
Is bei dem Pfad ned einfach en slash zu viel?
Und braucht man das file:// überhaupt noch, wenn der String eh in ne URL umgewandelt wird?!
 

Developer_X

Top Contributor
Java:
	PointSound p = null;
				try {
					p = new PointSound(new MediaContainer(new URL("file:///F:/Rayman/Sound.Library/THEME.wav")),50,0,0,0);
				} catch (MalformedURLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				p.setSchedulingBounds(bounds);
				
		objRoot.addChild(p);
Soweit sind wir schonmal, und an MidNIgis, Frage, ja, man muss das "file:///" davor setzten.
Sonst klappt es nicht
 
M

MiDniGG

Gast
Java:
	PointSound p = null;
				try {
					p = new PointSound(new MediaContainer(new URL("file:///F:/Rayman/Sound.Library/THEME.wav")),50,0,0,0);
				} catch (MalformedURLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				p.setSchedulingBounds(bounds);
				
		objRoot.addChild(p);
Soweit sind wir schonmal, und an MidNIgis, Frage, ja, man muss das "file:///" davor setzten.
Sonst klappt es nicht

WTF? Wie schreibst Du mich denn? :lol:
 

Developer_X

Top Contributor
ok sorry, du heißt MiDniGG
aber. was mache ich falsch ich hör immer noch nichts
ich zeig euch am Besten meine ganze Klasse
Java:
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.net.MalformedURLException;
import java.net.URL;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.behaviors.vp.*;       
	
	public class Test_Class extends Applet {       

    private SimpleUniverse universe ;
    private Canvas3D canvas;
    private BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 10.0);
    
      public void setupView() 
      { 
    	OrbitBehavior orbit = new OrbitBehavior(canvas,
                OrbitBehavior.REVERSE_ALL|OrbitBehavior.STOP_ZOOM);
        orbit.setSchedulingBounds(bounds);
        ViewingPlatform viewingPlatform = universe.getViewingPlatform();
        
        viewingPlatform.setNominalViewingTransform();
        viewingPlatform.setViewPlatformBehavior(orbit);       
        }       
          
        public BranchGroup createSceneGraph() {
        BranchGroup objRoot = new BranchGroup();       
        
  //hier!!!
        
			
				PointSound p = null;
				try {
					p = new PointSound(new MediaContainer(new URL("file:///F:/Rayman/Sound.Library/THEME.wav")),50,0,0,0);
				} catch (MalformedURLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				p.setSchedulingBounds(bounds);
				
		objRoot.addChild(p);
  //hier!!!      
        Color3f lightColor = new Color3f(.6f,.6f,.6f);
        AmbientLight ambientLight= new AmbientLight(lightColor);
        ambientLight.setInfluencingBounds(bounds);
        objRoot.addChild(ambientLight);
        DirectionalLight directionalLight = new DirectionalLight();
        directionalLight.setColor(lightColor);
        directionalLight.setInfluencingBounds(bounds);
        objRoot.addChild(directionalLight);       
        return objRoot;       
    }       
     
    public void init() {
         BranchGroup scene = createSceneGraph();       
         setLayout(new BorderLayout());
         
         GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
         canvas = new Canvas3D(config);
         add("Center", canvas);       
        
         universe = new SimpleUniverse(canvas);       
         setupView();       
         universe.addBranchGraph(scene);
    }       
    public void destroy() {universe.removeAllLocales();}       
   
    public static void main(String[] args) {new MainFrame(new Test_Class(), 256, 256);}
}
 
V

Vayu

Gast
hast du die Boxen eingeschaltet? :D

oder evtl musst dem sound ja auch erst noch sagen, dass er sich abspielen soll?

einfach mal die Sound-API lesen. Weil PointSound erbt ja von Sound

Sound (Java 3D API)

Sound.setEnable(true) oder sowas
 
Zuletzt bearbeitet von einem Moderator:

Developer_X

Top Contributor
also Point Sound erbt von Sound
d.h. alle Funktionen von "Sound" sind auch in PointSound + ein paar mehr sachen
so mein Problem ist immer noch da, keine ahnung wie ich den Sound starten so, "start" gibts ja leider nicht "isPlaying" geht nicht, und sachen wie loop gibts nur mit get "getLoop" also keine Ahnung wie ich das starten soll, weißt dus?
Java:
	PointSound p = null;
				try {
					p = new PointSound(new MediaContainer(new URL("file:///F:/Rayman/Sound.Library/THEME.wav")),50,0,0,0);
				} catch (MalformedURLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				p.setSchedulingBounds(bounds);
				p.isPlaying();
 
V

Vayu

Gast
ich hab doch meine vermutung schon geschrieben ...

setEnable(true)

ich hab keine ahnung ob das damit geht, war nur ne vermutung
 

roque

Mitglied
übrigens wurde dir ja oben eh schon der Link zur API präsentiert, wenn du da auch nur einmal draufgeklickt hättest hättest du super schön und ausführlich lesen können wie man vorgeht um den Sound abzuspielen..

Beispielsweise der Abschnitt
Enable Sound
....
Setting the enable flag to true during construction acts as a request to start the sound playing "as soon as it can" be started.
...


weiter unten würde man dann die von Vayu genannte methode finden.. und noch vieles mehr an Erklärung..
 
V

Vayu

Gast
ich bin mal gespannt ob er die setLoop() methode findet ^^ weil es wird bestimmt bald die frage kommen, wieso der sound nur einmal abspielt
 

Developer_X

Top Contributor
als ob ich das mit set Enabled noch nciht ausprobiert hätte, und vieles mehr, auch mit, set´Loop. usw...
ich hör aber immer noch keinen Sound
Java:
	PointSound p = null;
				try {
					p = new PointSound(new MediaContainer(new URL("file:///F:/Rayman/Sound.Library/THEME.wav")),1,0,0,0);
				} catch (MalformedURLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				p.setSchedulingBounds(bounds);
				p.setEnable(true);
				
		objRoot.addChild(p);
 
V

Vayu

Gast
dann keine ahnung. laut API sollte das so funktionieren. Vielleicht wird dein Methode in der der sound erzeugt wird noch gar nicht aufgerufen.

fliegen dir im Hintergrund irgendwelche Exceptions auf die Konsole?
 

Developer_X

Top Contributor
das klappt bei mir setEnable true
nicht
über all bei all Exaples ist die Rede von JOAL
eine Frage. könnt ihrs starten nur mit dem Normalen Java3D Package?
 

Illuvatar

Top Contributor
Die Sound-Unterstützung von Java3D ist noch nicht so 100% ausgereift.
In einem SimpleUniverse wird leider standardmäßig kein AudioDevice gesetzt, das muss man manuell machen:
Java:
import com.sun.j3d.audioengines.javasound.JavaSoundMixer;
// ...
// Dann beim Initialisieren:
         PhysicalEnvironment environment = universe.getViewer().getPhysicalEnvironment();
         AudioDevice device = new JavaSoundMixer(environment);
         device.initialize();
         environment.setAudioDevice(device);
Dein Code für den eigentlichen PointSound stimmt glaub ich mittlerweile (setEnable muss mit rein!).
Womit du ein Problem kriegen könntest ist, dass ein Applet nicht einfach so auf eine Sounddatei zugreifen darf, die irgendwo auf der Festplatte liegt. Aber du willst ja ein Applet...
 
V

Vayu

Gast
ich versteh eh nicht wieso da in seinen Codeschnipseln überall ABSOLUTE Pfade drinstehen? Statt dass er relative verwendet, die in sein Projekt zeigen ... das muss man doch später alles wieder umbauen und vor allem wiederfinden!
 

mr-gurke

Mitglied
ich versteh eh nicht wieso da in seinen Codeschnipseln überall ABSOLUTE Pfade drinstehen? Statt dass er relative verwendet, die in sein Projekt zeigen ... das muss man doch später alles wieder umbauen und vor allem wiederfinden!
Kennt er denn schon den Unterschied zwischen relativen Pfaden und absoluten?

@Developer_X: Wenn du bei deinen Sounds und deinen Grafiken das Ziel nicht absolut, also F:/Rayman/Sound.Library/THEME.wav, sondern relativ (d.h. mit dem Navigieren durchs Dateisystem nicht ganz oben beim Arbeitsplatz anfängst, sondern dort wo du, bzw. dein Applet gerade ist) angibst, sparst du dir zum einen eine Menge potentielle Schreibfehler und wenn du deine Dateien, die dein Applet braucht in einem Unterverzeichnis von deiner Hauptklasse ablegst (z.B. Files\Sound\THEME.wav (so sieht ein relativer Pfad aus)), kannst du das ganze Projekt irgendwo hinverschieben z.b. nach C:\zuGrabeGetrageneProjekte\ und das Programm findet die Sounds und Bilder immer noch ;)
 

Developer_X

Top Contributor
@ILLUVATOR
ich hab deinen code mal in mein applet, in "init" geschrieben, ging immer noch nciht, dann nante ich die init methode in eine public um, und änderte das ganze in extends JFrame
dann hatts aber immer noch nicht funktioniert.
 

Developer_X

Top Contributor
Hier mein Code als JFrame:
Java:
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.net.MalformedURLException;
import java.net.URL;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.swing.JFrame;
import javax.vecmath.*;
import com.sun.j3d.utils.behaviors.vp.*;       
	
	public class Test_Class extends JFrame 
	{       

    private SimpleUniverse universe ;
    private Canvas3D canvas;
    private BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 10.0);
    
      public void setupView() 
      { 
    	OrbitBehavior orbit = new OrbitBehavior(canvas,
                OrbitBehavior.REVERSE_ALL|OrbitBehavior.STOP_ZOOM);
        orbit.setSchedulingBounds(bounds);
        ViewingPlatform viewingPlatform = universe.getViewingPlatform();
        
        viewingPlatform.setNominalViewingTransform();
        viewingPlatform.setViewPlatformBehavior(orbit);       
        }       
          
        public BranchGroup createSceneGraph() {
        BranchGroup objRoot = new BranchGroup();       
        
  //hier!!!
       
        MediaContainer myWave = null;
		try {
			myWave = new MediaContainer(new URL("file:///F:/Rayman/Sound.Library/Sounds/MainSound.wav"));
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        Point2f[] myAtten = {
        	    new Point2f( 100.0f, 1.0f ),
        	    new Point2f( 350.0f, 0.5f ),
        	    new Point2f( 600.0f, 0.0f )
        	};
        PointSound mySound = new PointSound( );
        mySound.setSoundData( myWave );
        mySound.setEnable( true );
        mySound.setInitialGain( 1.0f );
        mySound.setLoop( -1 );  // Loop forever
        mySound.setPosition( new Point3f( 0.0f, 1.0f, 0.0f ) );
        mySound.setDistanceGain( myAtten );
        BoundingSphere myBounds = new BoundingSphere(
        	    new Point3d( ), 1000.0 );
        	mySound.setSchedulingBounds( myBounds );

        	objRoot.addChild(mySound);
  //hier!!!      
        Color3f lightColor = new Color3f(.6f,.6f,.6f);
        AmbientLight ambientLight= new AmbientLight(lightColor);
        ambientLight.setInfluencingBounds(bounds);
        objRoot.addChild(ambientLight);
        DirectionalLight directionalLight = new DirectionalLight();
        directionalLight.setColor(lightColor);
        directionalLight.setInfluencingBounds(bounds);
        objRoot.addChild(directionalLight);       
        return objRoot;       
    }       
     
    public Test_Class()
    {
    	setVisible(true);
    	
         BranchGroup scene = createSceneGraph();       
         setLayout(new BorderLayout());
         
         GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
         canvas = new Canvas3D(config);
         add("Center", canvas);       
        
         universe = new SimpleUniverse(canvas);       
         setupView();       
         universe.addBranchGraph(scene);
    }       
    public void destroy() {universe.removeAllLocales();}       
   
    public static void main(String[] args) {new Test_Class();}
}
 

Developer_X

Top Contributor
nein eben nicht, ich hab keine fehlermeldung und höre keinen Sound, auich wenn ich mit der Maus ranzoome, PS:
Das Beispiel könnt ihr bei euch kompilieren, dann will ich wissen obs bei euch klappt.
 
M

MiDniGG

Gast
Also bei mir kommt nur en schwarzes fenster, wenn ich es groß ziehe... absicht? Oder sollte eigentlich was zu sehen sein???
 

Developer_X

Top Contributor
füge dem createthescenegraph ganze einfach nnoch folgendes zu:
Java:
objRoot.addChild(new Sphere(0.1f));
 

Developer_X

Top Contributor
ich hoffe doch sehr, du hast daran gedacht den PFad zur mUsik zu verändern oder?
Wenn nicht, nehm einen längeren Sound. den du auf deinem PC hast du starte ihn dann
und sag mir dann, kannst du was hören?
 
M

MiDniGG

Gast
ich hoffe doch sehr, du hast daran gedacht den PFad zur mUsik zu verändern oder?
Wenn nicht, nehm einen längeren Sound. den du auf deinem PC hast du starte ihn dann
und sag mir dann, kannst du was hören?

Ganz bescheuert bin ich nicht ^^
Hab das ding.wav von M$ genommen ^^ Ganz schön nervig bei nem Endlos-Loop :lol:
 

Developer_X

Top Contributor
geht imer noch nicht+ Fehlermeldung
Java:
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.net.MalformedURLException;
import java.net.URL;

import com.sun.j3d.audioengines.javasound.JavaSoundMixer;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.swing.JFrame;
import javax.vecmath.*;
import com.sun.j3d.utils.behaviors.vp.*;       
	
	public class Test_Class extends JFrame 
	{       

    private SimpleUniverse universe ;
    private Canvas3D canvas;
    private BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 10.0);
    
      public void setupView() 
      { 
    	OrbitBehavior orbit = new OrbitBehavior(canvas,
                OrbitBehavior.REVERSE_ALL|OrbitBehavior.STOP_ZOOM);
        orbit.setSchedulingBounds(bounds);
        ViewingPlatform viewingPlatform = universe.getViewingPlatform();
        
        viewingPlatform.setNominalViewingTransform();
        viewingPlatform.setViewPlatformBehavior(orbit);       
        }       
          
        public BranchGroup createSceneGraph() {
        BranchGroup objRoot = new BranchGroup();       
        
  //hier!!!
        objRoot.addChild(new Bush().Bush());
       
        MediaContainer myWave = null;
		try {
			myWave = new MediaContainer(new URL("file:///F:/Rayman/Sound.Library/Sounds/MainSound.wav"));
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        Point2f[] myAtten = {
        	    new Point2f( 100.0f, 1.0f ),
        	    new Point2f( 350.0f, 0.5f ),
        	    new Point2f( 600.0f, 0.0f )
        	};
        PointSound mySound = new PointSound( );
        mySound.setSoundData( myWave );
        mySound.setEnable( true );
        mySound.setInitialGain( 1.0f );
        mySound.setLoop( -1 );  // Loop forever
        mySound.setPosition( new Point3f( 0.0f, 1.0f, 0.0f ) );
        mySound.setDistanceGain( myAtten );
        BoundingSphere myBounds = new BoundingSphere(
        	    new Point3d( ), 1000.0 );
        	mySound.setSchedulingBounds( myBounds );

        	objRoot.addChild(mySound);
  //hier!!!      
        Color3f lightColor = new Color3f(.6f,.6f,.6f);
        AmbientLight ambientLight= new AmbientLight(lightColor);
        ambientLight.setInfluencingBounds(bounds);
        objRoot.addChild(ambientLight);
        DirectionalLight directionalLight = new DirectionalLight();
        directionalLight.setColor(lightColor);
        directionalLight.setInfluencingBounds(bounds);
        objRoot.addChild(directionalLight);     
                
        
        return objRoot;       
    }       
     
    public Test_Class()
    {
    	setVisible(true);
    	
    	 PhysicalEnvironment environment = universe.getViewer().getPhysicalEnvironment();
         AudioDevice device = new JavaSoundMixer(environment);
         device.initialize();
         environment.setAudioDevice(device);
          
         BranchGroup scene = createSceneGraph();       
         setLayout(new BorderLayout());
         
         GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
         canvas = new Canvas3D(config);
         add("Center", canvas);       
        
         universe = new SimpleUniverse(canvas);       
         setupView();       
         universe.addBranchGraph(scene);
    }       
   
    public static void main(String[] args) {new Test_Class();}
}
Code:
Exception in thread "main" java.lang.NullPointerException
	at Plant.Test_Class.<init>(Test_Class.java:81)
	at Plant.Test_Class.main(Test_Class.java:98)
 
M

MiDniGG

Gast
geht imer noch nicht+ Fehlermeldung
Java:
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.net.MalformedURLException;
import java.net.URL;

import com.sun.j3d.audioengines.javasound.JavaSoundMixer;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.swing.JFrame;
import javax.vecmath.*;
import com.sun.j3d.utils.behaviors.vp.*;       
	
	public class Test_Class extends JFrame 
	{       

    private SimpleUniverse universe ;
    private Canvas3D canvas;
    private BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 10.0);
    
      public void setupView() 
      { 
    	OrbitBehavior orbit = new OrbitBehavior(canvas,
                OrbitBehavior.REVERSE_ALL|OrbitBehavior.STOP_ZOOM);
        orbit.setSchedulingBounds(bounds);
        ViewingPlatform viewingPlatform = universe.getViewingPlatform();
        
        viewingPlatform.setNominalViewingTransform();
        viewingPlatform.setViewPlatformBehavior(orbit);       
        }       
          
        public BranchGroup createSceneGraph() {
        BranchGroup objRoot = new BranchGroup();       
        
  //hier!!!
        objRoot.addChild(new Bush().Bush());
       
        MediaContainer myWave = null;
		try {
			myWave = new MediaContainer(new URL("file:///F:/Rayman/Sound.Library/Sounds/MainSound.wav"));
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        Point2f[] myAtten = {
        	    new Point2f( 100.0f, 1.0f ),
        	    new Point2f( 350.0f, 0.5f ),
        	    new Point2f( 600.0f, 0.0f )
        	};
        PointSound mySound = new PointSound( );
        mySound.setSoundData( myWave );
        mySound.setEnable( true );
        mySound.setInitialGain( 1.0f );
        mySound.setLoop( -1 );  // Loop forever
        mySound.setPosition( new Point3f( 0.0f, 1.0f, 0.0f ) );
        mySound.setDistanceGain( myAtten );
        BoundingSphere myBounds = new BoundingSphere(
        	    new Point3d( ), 1000.0 );
        	mySound.setSchedulingBounds( myBounds );

        	objRoot.addChild(mySound);
  //hier!!!      
        Color3f lightColor = new Color3f(.6f,.6f,.6f);
        AmbientLight ambientLight= new AmbientLight(lightColor);
        ambientLight.setInfluencingBounds(bounds);
        objRoot.addChild(ambientLight);
        DirectionalLight directionalLight = new DirectionalLight();
        directionalLight.setColor(lightColor);
        directionalLight.setInfluencingBounds(bounds);
        objRoot.addChild(directionalLight);     
                
        
        return objRoot;       
    }       
     
    public Test_Class()
    {
    	setVisible(true);
    	
    	 PhysicalEnvironment environment = universe.getViewer().getPhysicalEnvironment();
         AudioDevice device = new JavaSoundMixer(environment);
         device.initialize();
         environment.setAudioDevice(device);
          
         BranchGroup scene = createSceneGraph();       
         setLayout(new BorderLayout());
         
         GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
         canvas = new Canvas3D(config);
         add("Center", canvas);       
        
         universe = new SimpleUniverse(canvas);       
         setupView();       
         universe.addBranchGraph(scene);
    }       
   
    public static void main(String[] args) {new Test_Class();}
}
Code:
Exception in thread "main" java.lang.NullPointerException
	at Plant.Test_Class.<init>(Test_Class.java:81)
	at Plant.Test_Class.main(Test_Class.java:98)

Dann schau wo die Nullpointer geschmissen wird und setz den Block den du eingefügt hast n bisschen weiter runter ;)
 

Developer_X

Top Contributor
ja ejtzt klappts bei mir. aber eine Sache noch

Der Sound wird nicht leiser wenn ich weggehe,
PS:
Natürlich habe ich "myBounds" soklein gemacht damit es nur noch 1 ist
 
V

Vayu

Gast
ich würd dich wahrscheinlich immer komplett klein schreiben :) diese groß- und kleinbuchstaben gewurschtel is nix für mich midnigg :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
M Grundsätzliche Java3D Fragen Spiele- und Multimedia-Programmierung 2
C Java3D SceneGraohPath Spiele- und Multimedia-Programmierung 2
C Java3D Rotation um einen Punkt (y-achse) Spiele- und Multimedia-Programmierung 2
G Java3D plattformunabhängig bundeln Spiele- und Multimedia-Programmierung 3
TheKing Java3D-Shooter View Spiele- und Multimedia-Programmierung 2
A Java3D tutorial? Spiele- und Multimedia-Programmierung 3
R Java3D Kollisionserkennung und Schwerkraft Spiele- und Multimedia-Programmierung 17
M Java3D Objekte entfernen und hinzufügen Spiele- und Multimedia-Programmierung 10
J Java3d Schnelle Geschosse Spiele- und Multimedia-Programmierung 12
D Kann ich mit Java3D 2D Daten als 3D surfaceplot plotten? Spiele- und Multimedia-Programmierung 5
J Java3d setTextureTransform verändert J3DGraphics2D Spiele- und Multimedia-Programmierung 4
J Hilfe: Rotation X und Y Achse (Java3d) Spiele- und Multimedia-Programmierung 12
K Java3D: LineStripArray Spiele- und Multimedia-Programmierung 2
P Java3D - Zylinder genau wie Vektor ausrichten Spiele- und Multimedia-Programmierung 5
Developer_X Java3D Mensch Ärgere Dich nicht. Spiele- und Multimedia-Programmierung 10
C JAVA3D Rotation um einen bestimmten Punkt Spiele- und Multimedia-Programmierung 20
Developer_X Java3D-Ungeeignet für 3D Spiele wegen Heap Space=? Spiele- und Multimedia-Programmierung 23
Developer_X Java3D Canvas post Renderer und? Spiele- und Multimedia-Programmierung 5
A Java3D Sichtweite Spiele- und Multimedia-Programmierung 2
"Er" Kamera rotation in Java3D Spiele- und Multimedia-Programmierung 2
A Java3D: Behavior scheduling bounds Spiele- und Multimedia-Programmierung 3
Developer_X THE BALL (needs Java3D) Spiele- und Multimedia-Programmierung 34
Developer_X Java3D Game_(die erste) Spiele- und Multimedia-Programmierung 2
Developer_X Java3D und while schleifen Spiele- und Multimedia-Programmierung 4
Developer_X Collisionserkennung in Java3D Spiele- und Multimedia-Programmierung 3
Developer_X Java3D Node -> Obj Data Spiele- und Multimedia-Programmierung 2
Developer_X Figuren werden nicht angezeigt (Java3D) Spiele- und Multimedia-Programmierung 5
S PDFRenderer und Java3D Spiele- und Multimedia-Programmierung 2
Developer_X Java3D- der Mausklick auf Nodes Spiele- und Multimedia-Programmierung 3
Developer_X Lines in Java3D Spiele- und Multimedia-Programmierung 4
V Java3D: HUD erstellen Spiele- und Multimedia-Programmierung 2
V Java3D: scheinende Sonne Spiele- und Multimedia-Programmierung 4
V Java3D: Ringe für Saturn erstellen Spiele- und Multimedia-Programmierung 8
V Java3D: automatisches Bewegen der Kamera Spiele- und Multimedia-Programmierung 19
V Java3D: mehrere ViewingPlaforms in Sonnensystem Spiele- und Multimedia-Programmierung 8
Developer_X Thread in Java3D Spiele- und Multimedia-Programmierung 8
B Java3D .obj dateien Spiele- und Multimedia-Programmierung 2
Developer_X Java3D's next TopModel Spiele- und Multimedia-Programmierung 16

Ähnliche Java Themen

Neue Themen


Oben