java - 在 Android 中选择 SoundPool 还是 MediaPlayer 更好?

标签 java android file audio button

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

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

最佳答案

SoundPoolMediaPlayer 快,但它有其自身的局限性。

SoundPool 用于较小的声音,例如您可以在 onClick() 方法中使用的声音,这样它可以在用户每次点击任何地方时发出点击声,因为这些文件预先加载到内存中,不会让 CPU 受到影响,这就是 SoundPoolMediaPlayer 快的原因。此外,它还可以管理一次呈现的音频流的数量。

MediaPlayer 用于用户可以访问播放选项(如播放、暂停、搜索、开始等)的情况。此外,通常用于长音频 MediaPlayer很好,因为您不能事先在内存中加载长音频。您还可以使用 MediaPlayer 通过 Internet 播放音频(如果您计划在未来的版本中这样做,这将很有用)。

在您的情况下,允许用户播放文件浏览器 Activity 中的音频,我建议您使用 MediaPlayer

关于java - 在 Android 中选择 SoundPool 还是 MediaPlayer 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14882701/

相关文章:

java - 安卓手机到手机文件传输

java - Listview 上的 setOnItemClickListener 扩展 Activity

Java 抽象方法参数类型

Android 模拟器无法在 Ubuntu 17.04 上启动

c# - FileProvider Xamarin 不显示文件

python - 使用时覆盖 python 文件?

java - 无法使用 POST 请求发送 JSON

android - 如何在 Android Studio 中构建 AOSP 项目

c - 如何读取由 scanf 分隔的字符串

java - 包含文件和目录的文件数组