Android SoundPool 剪切声音文件短

Posted

技术标签:

【中文标题】Android SoundPool 剪切声音文件短【英文标题】:Android SoundPool cutting sound file short 【发布时间】:2010-11-29 15:18:35 【问题描述】:

我是 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”的声音,然后声音就停止了。

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

非常感谢!

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

你有没有尝试重新采样声音文件???

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

所以尝试相同。

希望它对你有用。

【讨论】:

【参考方案3】:

60kb 的存储空间,或 2mb 的堆空间,解码后,纯波可能是极限,是的。 确保你使用的时间不超过一秒或类似的时间。

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

【讨论】:

以上是关于Android SoundPool 剪切声音文件短的主要内容,如果未能解决你的问题,请参考以下文章

Android SoundPool 不播放声音

Android soundpool 空指针异常

Android自助餐之SoundPool

播放短 .wav 文件 - Android

MediaPlayer 或 SoundPool 用于多个短声音?

Android 编程 - 如何从广播接收器播放 SoundPool 声音?