我正在使用Libgdx创建一个Android应用程序。如果我在桌面版本和模拟器上运行程序,声音效果很好。
当我在我的Android手机(Galaxy S3)上测试应用程序时,没有声音。除了完全丢失的声音外,其他所有设备都能正常工作。有谁知道这里的问题是什么?
向我询问我想为您发布的代码或日志!
此致
以下示例显示了我播放声音的方式:
import com.badlogic.gdx.audio.Sound;
public class LevelDesigner {
public LevelDesigner() {
Sound mp3Sound = Gdx.audio.newSound(Gdx.files.internal("data/sounds/sound.mp3"));
mp3Sound.loop();
}
}
答案 0 :(得分:4)
有时声音与播放的帧不同,请尝试等待一帧。或者在另一堂课上演奏。
答案 1 :(得分:2)
在播放前加载声音并验证其是否已加载。我有同样的问题,这很好。
public void create(){
assetManager = new AssetManager();
assetManager.load("path/to/sound.mp3", Sound.class);
assetManager.finishLoading(); //Important!
}
//The load must be tested within the loop;
public void render(){
if (assetManager.isLoaded("path/to/sound.mp3")){
sound = assetManager.get("path/to/sound.mp3", Sound.class);
sound.play();
}
}
答案 2 :(得分:1)
以下代码在设备上运行良好:
public class LevelDesigner {
private AssetManager assetManager;
public LevelDesinger {
assetManager = new AssetManager();
assetManager.load("data/sounds/loop.ogg", Music.class);
}
public boolean startMusic() {
if(assetManager.isLoaded("data/sounds/loop.ogg")) {
Music music = assetManager.get("data/sounds/loop.ogg", Music.class);
music.play();
music.setLooping(true);
}else {
System.out.println("not loaded yet");
return false;
}
return true;
}
}
说明:检查声音是否已加载非常重要。如果它没有加载,你尝试播放它不会通过例外,所以这对初学者来说很难找到;)...
答案 3 :(得分:0)
检查你的mp3,ogg或wav是不是太短或太长了!听起来很疯狂,但我在这里发现了这个问题:http://github.com/libgdx/libgdx/issues/1366我尝试了一种我知道从另一款游戏中发挥作用的声音,并且有效。
我的工作声音,钢琴按键可以在这里下载:
http://www.martincapodici.com/wp-content/uploads/2014/08/a4.ogg