4

我目前正在尝试制作一个应用程序,其中有触发音频文件的按钮,但这些音频文件是由用户通过文件浏览器活动选择的。我听说 MediaPlayer 有延迟问题等,但 SoundPool 有内存限制?

另外,我可以让用户通过从文件浏览器(所选项目)返回一个字符串来设置音频文件,并将其用于音频 API 的路径,它是哪一个?

4

2 回答 2

3

SoundPool如果您尝试播放已加载的文件,则速度会更快。因为加载文件需要更多时间,并且文件应该更小以获得更好的性能。

但在您的情况下,似乎用户选择要播放的FileBrowser文件,文件大小会有所不同,因此加载时间。去吧MediaPlayer

于 2013-02-14T19:47:35.003 回答
3

SoundPool比它更快,MediaPlayer但它有其自身的局限性。

SoundPool用于小声音,例如您可以在您的onClick()方法中使用的声音,以便每次用户单击任何位置时它都会发出咔哒声,因为这些文件已预先加载在内存中,不会让 CPU 因它的行为而受到影响,并且这就是为什么SoundPool比 快MediaPlayer。此外,它可以管理一次渲染的音频流的数量。

MediaPlayer用于用户可以访问播放、暂停、查找、开始等播放选项的情况。此外,通常对于长音频MediaPlayer来说是好的,因为您不能事先在内存中加载长音频。您还可以用于MediaPlayer通过 Internet 播放音频(如果您打算在将来的版本中使用它会很有用)。

在您的情况下,允许用户从文件浏览器活动中播放音频,我建议您选择MediaPlayer.

于 2016-10-15T05:49:38.870 回答