使用Libgdx在Android应用程序中没有声音

时间:2014-01-03 14:01:15

标签: android audio libgdx

我正在使用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();
    }
}

4 个答案:

答案 0 :(得分:4)

有时声音与播放的帧不同,请尝试等待一帧。或者在另一堂课上演奏。

参考:Sound not playing after Loading

答案 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