Audio tests: Used non-deprecated constructor, replaced "AudioApp" class by SimpleApplication

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8149 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
roo..om 13 years ago
parent d613ed7c84
commit 1acd324d02
  1. 84
      engine/src/test/jme3test/audio/AudioApp.java
  2. 114
      engine/src/test/jme3test/audio/TestAmbient.java
  3. 21
      engine/src/test/jme3test/audio/TestDoppler.java
  4. 13
      engine/src/test/jme3test/audio/TestMusicStreaming.java
  5. 11
      engine/src/test/jme3test/audio/TestOgg.java
  6. 113
      engine/src/test/jme3test/audio/TestReverb.java
  7. 90
      engine/src/test/jme3test/audio/TestWav.java

@ -1,84 +0,0 @@
/*
* Copyright (c) 2009-2010 jMonkeyEngine
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package jme3test.audio;
import com.jme3.audio.AudioRenderer;
import com.jme3.asset.AssetManager;
import com.jme3.asset.DesktopAssetManager;
import com.jme3.audio.AudioContext;
import com.jme3.audio.Listener;
import com.jme3.system.AppSettings;
import com.jme3.system.JmeSystem;
public class AudioApp {
private static final float UPDATE_RATE = 0.01f;
protected AssetManager assetManager;
protected Listener listener;
protected AudioRenderer audioRenderer;
public AudioApp(){
AppSettings settings = new AppSettings(true);
settings.setRenderer(null); // force dummy renderer (?)
settings.setAudioRenderer(AppSettings.LWJGL_OPENAL);
audioRenderer = JmeSystem.newAudioRenderer(settings);
audioRenderer.initialize();
assetManager = new DesktopAssetManager(true);
listener = new Listener();
audioRenderer.setListener(listener);
}
public void initAudioApp(){
AudioContext.setAudioRenderer(audioRenderer);
}
public void updateAudioApp(float tpf){
}
public void start(){
initAudioApp();
while (true){
updateAudioApp(UPDATE_RATE);
audioRenderer.update(UPDATE_RATE);
try{
Thread.sleep((int) (UPDATE_RATE * 1000f));
}catch (InterruptedException ex){
ex.printStackTrace();
}
}
}
}

@ -1,87 +1,69 @@
/*
* Copyright (c) 2009-2010 jMonkeyEngine
* All rights reserved.
* Copyright (c) 2009-2010 jMonkeyEngine All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* modification, are permitted provided that the following conditions are met:
* * * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
package jme3test.audio;
import com.jme3.app.SimpleApplication;
import com.jme3.audio.AudioNode;
//import com.jme3.audio.PointAudioSource;
import com.jme3.math.FastMath;
import com.jme3.audio.Environment;
import com.jme3.math.Vector3f;
public class TestAmbient extends AudioApp {
private AudioNode river, nature, waves;
// private PointAudioSource waves;
private float time = 0;
private float nextTime = 1;
public static void main(String[] args){
TestAmbient test = new TestAmbient();
test.start();
}
@Override
public void initAudioApp(){
waves = new AudioNode(assetManager, "Sound/Environment/Ocean Waves.ogg", false);
waves.setPositional(true);
nature = new AudioNode(assetManager, "Sound/Environment/Nature.ogg", true);
// river = new AudioSource(manager, "sounds/river.ogg");
// float[] eax = new float[]
// {15, 38.0f, 0.300f, -1000, -3300, 0, 1.49f, 0.54f, 1.00f, -2560, 0.162f, 0.00f,0.00f,0.00f, -229, 0.088f, 0.00f,0.00f,0.00f, 0.125f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
// ;
//
// Environment env = new Environment(eax);
// ar.setEnvironment(env);
public class TestAmbient extends SimpleApplication {
waves.setLocalTranslation(new Vector3f(4, -1, 30));
waves.setMaxDistance(5);
waves.setRefDistance(1);
private AudioNode nature, waves;
nature.setVolume(3);
audioRenderer.playSourceInstance(waves);
audioRenderer.playSource(nature);
}
public static void main(String[] args) {
TestAmbient test = new TestAmbient();
test.start();
}
@Override
public void updateAudioApp(float tpf){
time += tpf;
@Override
public void simpleInitApp() {
float[] eax = new float[]{15, 38.0f, 0.300f, -1000, -3300, 0,
1.49f, 0.54f, 1.00f, -2560, 0.162f, 0.00f, 0.00f,
0.00f, -229, 0.088f, 0.00f, 0.00f, 0.00f, 0.125f, 1.000f,
0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f};
Environment env = new Environment(eax);
audioRenderer.setEnvironment(env);
if (time > nextTime){
waves = new AudioNode(assetManager, "Sound/Environment/Ocean Waves.ogg", false);
waves.setPositional(true);
waves.setLocalTranslation(new Vector3f(4, -1, 30));
waves.setMaxDistance(5);
waves.setRefDistance(1);
time = 0;
nextTime = FastMath.nextRandomFloat() * 2 + 0.5f;
}
}
nature = new AudioNode(assetManager, "Sound/Environment/River.ogg", true);
nature.setVolume(3);
audioRenderer.playSourceInstance(waves);
audioRenderer.playSource(nature);
}
@Override
public void simpleUpdate(float tpf) {
}
}

@ -32,12 +32,10 @@
package jme3test.audio;
import com.jme3.asset.plugins.FileLocator;
import com.jme3.app.SimpleApplication;
import com.jme3.audio.AudioNode;
import com.jme3.audio.Environment;
import com.jme3.audio.LowPassFilter;
import com.jme3.math.FastMath;
import com.jme3.math.Quaternion;
import com.jme3.math.Vector3f;
import org.lwjgl.openal.AL10;
import org.lwjgl.openal.AL11;
@ -45,31 +43,23 @@ import org.lwjgl.openal.AL11;
/**
* Test Doppler Effect
*/
public class TestDoppler extends AudioApp {
public class TestDoppler extends SimpleApplication {
private AudioNode ufo;
private float x = 20, z = 0;
private float rate = -0.05f;
private float xDist = 20;
private float zDist = 5;
private float angle = FastMath.TWO_PI;
private LowPassFilter filter = new LowPassFilter(1, 1);
public static void main(String[] args){
TestDoppler test = new TestDoppler();
test.start();
}
@Override
public void initAudioApp(){
Quaternion q = new Quaternion();
q.lookAt(new Vector3f(0, 0, -1f), Vector3f.UNIT_Y);
listener.setRotation(q);
public void simpleInitApp(){
audioRenderer.setEnvironment(Environment.Dungeon);
AL10.alDistanceModel(AL11.AL_EXPONENT_DISTANCE);
@ -83,7 +73,7 @@ public class TestDoppler extends AudioApp {
}
@Override
public void updateAudioApp(float tpf){
public void simpleUpdate(float tpf){
//float x = (float) (Math.cos(angle) * xDist);
float dx = (float) Math.sin(angle) * xDist;
@ -107,7 +97,8 @@ public class TestDoppler extends AudioApp {
ufo.setLocalTranslation(x, 0, z);
ufo.updateGeometricState();
System.out.println("LOC: " + (int)x +", " + (int)z + ", VEL: " + (int)dx + ", " + (int)dz);
System.out.println("LOC: " + (int)x +", " + (int)z +
", VEL: " + (int)dx + ", " + (int)dz);
}
}

@ -32,10 +32,11 @@
package jme3test.audio;
import com.jme3.app.SimpleApplication;
import com.jme3.asset.plugins.UrlLocator;
import com.jme3.audio.AudioNode;
public class TestMusicStreaming extends AudioApp {
public class TestMusicStreaming extends SimpleApplication {
public static void main(String[] args){
TestMusicStreaming test = new TestMusicStreaming();
@ -43,13 +44,13 @@ public class TestMusicStreaming extends AudioApp {
}
@Override
public void updateAudioApp(float tpf){
}
@Override
public void initAudioApp(){
public void simpleInitApp(){
assetManager.registerLocator("http://www.vorbis.com/music/", UrlLocator.class);
AudioNode src = new AudioNode(assetManager, "Lumme-Badloop.ogg", true);
audioRenderer.playSource(src);
}
@Override
public void simpleUpdate(float tpf){}
}

@ -32,10 +32,11 @@
package jme3test.audio;
import com.jme3.app.SimpleApplication;
import com.jme3.audio.AudioNode;
import com.jme3.audio.LowPassFilter;
public class TestOgg extends AudioApp {
public class TestOgg extends SimpleApplication {
private AudioNode src;
@ -45,19 +46,19 @@ public class TestOgg extends AudioApp {
}
@Override
public void initAudioApp(){
public void simpleInitApp(){
System.out.println("Playing without filter");
src = new AudioNode(audioRenderer, assetManager, "Sound/Effects/Foot steps.ogg", true);
src = new AudioNode(assetManager, "Sound/Effects/Foot steps.ogg", true);
audioRenderer.playSource(src);
}
@Override
public void updateAudioApp(float tpf){
public void simpleUpdate(float tpf){
if (src.getStatus() != AudioNode.Status.Playing){
audioRenderer.deleteAudioData(src.getAudioData());
System.out.println("Playing with low pass filter");
src = new AudioNode(audioRenderer, assetManager, "Sound/Effects/Foot steps.ogg", true);
src = new AudioNode(assetManager, "Sound/Effects/Foot steps.ogg", true);
src.setDryFilter(new LowPassFilter(1f, .1f));
src.setVolume(3);
audioRenderer.playSource(src);

@ -1,84 +1,79 @@
/*
* Copyright (c) 2009-2010 jMonkeyEngine
* All rights reserved.
* Copyright (c) 2009-2010 jMonkeyEngine All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* modification, are permitted provided that the following conditions are met:
* * * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
package jme3test.audio;
import com.jme3.app.SimpleApplication;
import com.jme3.audio.AudioNode;
import com.jme3.audio.Environment;
//import com.jme3.audio.PointAudioSource;
import com.jme3.math.FastMath;
import com.jme3.math.Vector3f;
public class TestReverb extends AudioApp {
private AudioNode src;
private float time = 0;
private float nextTime = 1;
public class TestReverb extends SimpleApplication {
public static void main(String[] args){
TestReverb test = new TestReverb();
test.start();
}
private AudioNode src;
private float time = 0;
private float nextTime = 1;
@Override
public void initAudioApp(){
src = new AudioNode(audioRenderer, assetManager, "Sound/Effects/Bang.wav");
public static void main(String[] args) {
TestReverb test = new TestReverb();
test.start();
}
float[] eax = new float[]
{15, 38.0f, 0.300f, -1000, -3300, 0, 1.49f, 0.54f, 1.00f, -2560, 0.162f, 0.00f,0.00f,0.00f, -229, 0.088f, 0.00f,0.00f,0.00f, 0.125f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
;
@Override
public void simpleInitApp() {
src = new AudioNode(assetManager, "Sound/Effects/Bang.wav");
// ar.setEnvironment(new Environment(eax));
Environment env = Environment.Cavern;
audioRenderer.setEnvironment(env);
}
float[] eax = new float[]{15, 38.0f, 0.300f, -1000, -3300, 0,
1.49f, 0.54f, 1.00f, -2560, 0.162f, 0.00f, 0.00f, 0.00f,
-229, 0.088f, 0.00f, 0.00f, 0.00f, 0.125f, 1.000f, 0.250f,
0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f};
audioRenderer.setEnvironment(new Environment(eax));
Environment env = Environment.Cavern;
audioRenderer.setEnvironment(env);
}
@Override
public void updateAudioApp(float tpf){
time += tpf;
@Override
public void simpleUpdate(float tpf) {
time += tpf;
if (time > nextTime){
Vector3f v = new Vector3f();
v.setX(FastMath.nextRandomFloat());
v.setY(FastMath.nextRandomFloat());
v.setZ(FastMath.nextRandomFloat());
v.multLocal(40, 2, 40);
v.subtractLocal(20, 1, 20);
if (time > nextTime) {
Vector3f v = new Vector3f();
v.setX(FastMath.nextRandomFloat());
v.setY(FastMath.nextRandomFloat());
v.setZ(FastMath.nextRandomFloat());
v.multLocal(40, 2, 40);
v.subtractLocal(20, 1, 20);
src.setLocalTranslation(v);
audioRenderer.playSourceInstance(src);
time = 0;
nextTime = FastMath.nextRandomFloat() * 2 + 0.5f;
}
src.setLocalTranslation(v);
audioRenderer.playSourceInstance(src);
time = 0;
nextTime = FastMath.nextRandomFloat() * 2 + 0.5f;
}
}
}

@ -1,70 +1,60 @@
/*
* Copyright (c) 2009-2010 jMonkeyEngine
* All rights reserved.
* Copyright (c) 2009-2010 jMonkeyEngine All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* modification, are permitted provided that the following conditions are met:
* *
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
package jme3test.audio;
import com.jme3.app.SimpleApplication;
import com.jme3.audio.AudioNode;
public class TestWav extends AudioApp {
public class TestWav extends SimpleApplication {
private float time = 0;
private AudioNode src;
private float time = 0;
private AudioNode src;
public static void main(String[] args){
TestWav test = new TestWav();
test.start();
}
public static void main(String[] args) {
TestWav test = new TestWav();
test.start();
}
public static void sleep(float time){
try{
Thread.sleep((long) (time * 1000));
}catch (InterruptedException ex){
}
@Override
public void simpleUpdate(float tpf) {
time += tpf;
if (time > 1f) {
audioRenderer.playSourceInstance(src);
time = 0;
}
@Override
public void updateAudioApp(float tpf){
time += tpf;
if (time > .1f){
audioRenderer.playSourceInstance(src);
time = 0;
}
}
@Override
public void initAudioApp(){
src = new AudioNode(audioRenderer, assetManager, "Sound/Effects/Gun.wav", false);
src.setLooping(false);
}
}
@Override
public void simpleInitApp() {
src = new AudioNode(assetManager, "Sound/Effects/Gun.wav", false);
src.setLooping(false);
}
}

Loading…
Cancel
Save