【问题标题】:Android Game - SoundPool not playing sounds on Motorola Droid X2Android 游戏 - SoundPool 没有在 Motorola Droid X2 上播放声音
【发布时间】:2025-12-05 06:55:01
【问题描述】:

我正在开发一款播放音频的游戏。声音在我的三星设备和 HTC 设备上播放良好。但是,摩托罗拉 Droid X2 无法播放这些声音。

初始化我的 SoundPool:

static SoundPool sp;
sp = new SoundPool(8, AudioManager.STREAM_MUSIC, 0);
sp.load(context, resource_id, 1);

播放声音:

sp.play(resource_id, 1.0f, 1.0f, 0, 0, 1.0f);

我已尝试搜索摩托罗拉设备和 SoundPool 可能存在的任何错误,但没有找到任何有用的东西。感谢您提供任何和所有帮助。

我正在加载五个 MP3 文件,每个文件都不到 20kb。

我创建了一个框架项目,并在 MainActivity 中仅包含以下代码,结果相同。仅从 Resources 类加载一个 12kb 的 MP3 文件。

super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    SoundPool sp = new SoundPool(16, AudioManager.STREAM_MUSIC, 0);
    int name = sp.load(this.getApplicationContext(), R.raw.brickhit,1);
        try {
            Thread.sleep(10000);
            Log.d("mark","sleeping....");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    sp.play(name, 1.0f, 1.0f, 1, -1, 1.0f);

【问题讨论】:

  • 这些音频文件有多大? SoundPool 适合收集一些小的特殊效果,但如果你开始用背景音乐或配音加载它,你很快就会耗尽内存。

标签: android game-engine soundpool motorola


【解决方案1】:

我之前没有遇到过这个问题,但是流计数可能是这里描述的问题:Android Soundpool problems

【讨论】:

    【解决方案2】:

    经过一些实验,事实证明,摩托罗拉 Droid X2 不会通过 SoundPool 播放 MP3 文件,至少在按上述方式加载时不会。我切换到 .ogg 格式,声音按预期播放。

    【讨论】: