Hi,
I get a exception when I'm trying to initialize J3d.Sound. I haven't found any examples or tutorials. This is the exception thrown after a call to System.out.println("Channels used for sound : " + s.getNumberOfChannelsUsed()) :

java.lang.NullPointerException at javax.media.j3d.SoundRetained.getNumberOfChannelsUsed(SoundRetained.java:779) at javax.media.j3d.Sound.getNumberOfChannelsUsed(Sound.java:845) at montageHansatome.createSceneGraph(montageHansatome.java:140) at montageHansatome.init(montageHansatome.java:68) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

This is my code :

 PhysicalEnvironment pe = simpleU.getViewer().getPhysicalEnvironment();
 AudioEngine ae = new AudioEngine(pe);
 pe.setAudioDevice(ae);

 if (ae.initialize())
     System.out.println("audio initialized");
 else
     System.out.println("audio not initialized");

 System.out.println("Nb channels available : " + ae.getChannelsAvailable());
 System.out.println("PlaybackType : " + ae.getAudioPlaybackType());

 MediaContainer mediaContainer = new MediaContainer(getCodeBase() + "/test.wav");
 Sound s = new BackgroundSound(mediaContainer, 1.0f);
 s.setLoop(100);
 s.setSchedulingBounds(bounds);
 System.out.println("Channels used for sound : " + s.getNumberOfChannelsUsed());
 s.setEnable(true);

 if (s.isReady())
     System.out.println("ready");
 else
     System.out.println("not ready");

 objRoot.addChild(s);

If I commentthe line  System.out.println("Channels used for sound : " + s.getNumberOfChannelsUsed()), I get another exception and the screen is black :

java.lang.ClassCastException: com.sun.j3d.audioengines.AudioEngine
 at javax.media.j3d.SoundScheduler.checkAudioDevice3D(SoundScheduler.java:2566)
 at javax.media.j3d.SoundScheduler.attachSoundData(SoundScheduler.java:2612)
 at javax.media.j3d.SoundScheduler.processSoundAtom(SoundScheduler.java:1285)
 at javax.media.j3d.SoundScheduler.calcSchedulingAction(SoundScheduler.java:1577)
 at javax.media.j3d.SoundScheduler.renderChanges(SoundScheduler.java:787)
 at javax.media.j3d.SoundScheduler.processMessages(SoundScheduler.java:229)
 at javax.media.j3d.StructureUpdateThread.doWork(StructureUpdateThread.java:83)
 at javax.media.j3d.J3dThread.run(J3dThread.java:256)

Thanks for your help
Matthieu Beghin





Yahoo! Mail -- Une adresse @yahoo.fr gratuite et en français !

Reply via email to