Android 游戏 - SoundPool 没有在 Motorola Droid X2 上播放声音

Posted

技术标签:

【中文标题】Android 游戏 - SoundPool 没有在 Motorola Droid X2 上播放声音【英文标题】:Android Game - SoundPool not playing sounds on Motorola Droid X2 【发布时间】:2013-01-12 22:11:14 【问题描述】:

我正在开发一款播放音频的游戏。声音在我的三星设备和 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 适合收集一些小的特殊效果,但如果你开始用背景音乐或配音加载它,你很快就会耗尽内存。 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于Android 游戏 - SoundPool 没有在 Motorola Droid X2 上播放声音的主要内容,如果未能解决你的问题,请参考以下文章

播放大量声音时,Android soundpool 意外关闭应用程序而没有消息

Android SoundPool.play() 有时会滞后

SoundPool 中的声音不会在 android 中加载

Android中的音频处理------SoundPool,MediaRecorder,MediaPlayer以及RingStone总结

Android开发之SoundPool使用详解

Android中使用SoundPool来播放音频