I have some sample code that works with point sounds, but I think it should be fairly trivial to convert it to use background sounds.
Here's the smallest standalone sound sample I've been able to create: http://clearwater.com.au/java/J3DSound6.java Maybe that will help get you going.
Cheers, Guy.
P.S. There are several problems with the sound implementation. Below are a couple issues I have explored. I'm including them also because they include links to more audio sample code.
Bug 4787253 - Sound setEnable(false) not work OS VERSION Windows 2000
OVERVIEW when using the Sound.setEnable(boolean) method to stop and restart an audio clip, if the audio clip is enabled immediately after it is disabled (or completes), it continues playing after it is subsequently disabled.
1) sound.setEnable(true) // sound starts playing (time passes) 2) sound.setEnable(false) // sound stops playing 3) sound.setEnable(true) // sound starts playing again (time passes) 4) sound.setEnable(false) // sound SHOULD stop but continues
At (4) sound node enters some sort of invalid state where it continues to play the original sound, but can be re-enabled and it will play a mix of the continuing stream and a new stream, with both played out at an accelerated rate.
WORKAROUND
Adding a sleep of >100ms between (2) and (3) above seems to prevent the problem.
REPRO The sample code at http://clearwater.com.au/java/J3DSound8.java reproduces the problem.
Note that there is an if (false) { wait() } block at the end of the program that enables the workaround.
Bug 4787026 - Sound.setRelease(true) is not yet implement OS VERSION Windows 2000
TITLE Sound.setRelease(true) doesn't work correctly with setLoop(>0)
SUMMARY Calling setRelease(true) followed by setEnable(false) should allow the audio to continue to the end of the current cycle. When the sound in question is set to loop, the sound continues to the end of the number of loops specified in the most recent call to setLoop(), including calls made after the sound was enabled. The loop count should not affect the behavior at all.
For example if the sound was started with sound.setLoop(INFINITE_LOOPS); sound.setEnable(true); and is currently in the middle of the second loop, the following effects are observed:
CASE 1) sound.setRelease(true); sound.setEnable(false);
The sound continues looping infinitely insetad of stopping at the end of the 2nd loop.
CASE 2) sound.setLoop(0); sound.setRelease(true); sound.setEnable(false);
The sound stops immediately instead of stopping at the end of the 2nd loop.
CASE 3) sound.setLoop(3); sound.setRelease(true); sound.setEnable(false);
The sound continues to the end of the 4th pass instead of stopping at the end of the 2nd pass.
REPRO
The code at http://www.clearwater.com.au/java/J3DSound10.java exhibits cases 2 and 3.
At 05:45 PM 21/07/2003 -0700, Dr. Thomas wrote:
I am trying to add background sound to a Java3d application. I have a *.wav file in my Java directory. My program creates a "BackgroundSound" object. It also creates a "MediaContainer" object and references to MediaContainer object to the sound. It sets the appropriate 'loop' values, 'initialgains', etc. I have found virtually nothing on this topic in Sun's online tutorial. I have examined the SIGGRAPH 98 Java 3D technology course notes, available on line. However, using their example has been unavailing. I also consulted the book, "Java 3D API Jump-Start". It provides a brief sample of code. Using their example, my code compiles. However, it produces no sound. Does anyone have a relatively simple example of code that works? Conversely, can anyone refer me to literature that explains this topic. Thank you in advance.
JT.
=========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".
=========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".