Android SoundPool切割声音文件简短

时间:2010-11-29 15:18:35

标签: android soundpool

我对Android很新,所以要温柔!

我有以下代码,应该(我认为)只是玩“developersshort”。

public constructor(Context context){
    this.context = context;
    soundPool = new SoundPool(2, AudioManager.STREAM_MUSIC,0);
    soundPoolMap = new HashMap<Integer, Integer>();
    soundPoolMap.put(1, soundPool.load(this.context, 
        R.raw.developersshort, 1));         
}

public void run() {
    soundPool.play(soundPoolMap.get(1), 1, 1, 1, 0, 1f);
}

[为了弄清楚发生了什么,它现在播放史蒂夫鲍尔默的混音,反复喊“开发者”!声音文件大小约为90KB。]

当我在模拟器中运行我的应用程序,并按下按钮触发声音时,它会说“开发人员开发人员......”等等,就像我期望的那样。

但是,当我将它部署到手机上时,我听到的只是“velop”一次,然后声音停止。

我不知道发生了什么,有什么想法吗?

非常感谢!

3 个答案:

答案 0 :(得分:1)

您的音频文件是.ogg文件吗?似乎其他格式与SoundPool有问题。如果这不起作用,您可能希望使用较小的音频文件进行测试。当我的音频文件超过60kb时,我遇到了一些故障。

答案 1 :(得分:1)

您是否尝试重新采样声音文件???

在此之前我的声音文件被削减了。但我已经将m4a从44KHz转换并重新采样到22KHz,现在它可以正常工作而不会被切割。请参考:and again about memory issues with SoundPool

所以尝试一样。

希望它适合你。

答案 2 :(得分:0)

60kb存储,或堆上2mb,解码,纯波可能是限制,是的。 确保你不要使用超过一秒或类似的东西。

soundpool确实需要小文件。阅读SDK页面。