android - 引擎声音有时会起作用

标签 android audio andengine

我在 onCreateResources 方法中加载了声音。

try {
    shield = MusicFactory.createMusicFromAsset(this.getMusicManager(), this, "shield.ogg");
} catch (IOException e) {
    e.printStackTrace();
}

shield.setVolume(1.0f);
shield.setLooping(true);

当我第一次播放声音时它工作正常,但是,接下来我播放它是否有效似乎是随机的。

我使用 shield.play(); 播放声音并使用 shield.stop(); 再次停止。 当它不起作用时,我会在日志中看到以下内容。

AudioFlinger could not create track, status: -12

Error creating AudioTrack

最佳答案

播放背景音乐时用Music控制长放,重复.. 播放短音频时使用声音,例如按下按钮或射击等 这是我使用它们的相同代码:

public static void controlBgAudio(boolean play, boolean repeat) {
    Music ms = ResourceManager.getInstance().audioBgMusic;
    if (play) {
        if (ms.isReleased()) {
            ms.resume();
        } else {
            ms.play();
        }
    } else {
        if (ms.isPlaying()) {
            ms.pause();
        } else {
            ms.stop();
        }
    }

    if (repeat) {
        ms.setLooping(true);
    } else {
        ms.setLooping(false);
    }
}

public static void controlShootAudio(boolean play, boolean repeat) {
    Sound ms = ResourceManager.getInstance().audioShoot;
    if (play) {
        if (ms.isReleased()) {
            ms.resume();
        } else {
            ms.play();
        }
    } else {
        if (ms.isLoaded()) {
            ms.pause();
        } else {
            ms.stop();
        }
    }

    if (repeat) {
        ms.setLooping(true);
    } else {
        ms.setLooping(false);
    }
}

关于android - 引擎声音有时会起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16881639/

相关文章:

java - 如何在AndEngine Rectangle类中实现glColorPointer

android - Box2d 和 Andengine 物理教程

android - 如何在android中附加一个字符串?

Java 变量!确实初始化

Android map V2 : Polygon fill disappears when zooming out

Javascript 全局变量不起作用,而本地变量起作用

android - 游戏因错误而崩溃 -> onRealTimeMessageSent(未知来源)

android - 警报没有停止

html - 我如何基本上使用html将音频播放器嵌入网站?

ios - 在 SpriteKit Swift 3 中停止/暂停设置为永远重复的声音