java - 在 Android 中从内存中加载声音

标签 java android memory zip soundpool

有没有办法使用 SoundPool.load 方法从内存中加载声音样本?

不幸的是,所有 methods SoundPool 中提供的参数用于真实文件。 问题是我想从 SD 卡上的 zip 文件加载声音,而提取 zip(如 this 解决方案)不是一个选项。

此外,还有一个 solution用于从未压缩的 zip 文件加载,但我的文件已压缩(并且将使用密码)。

那么有没有办法让 java.io.FileDescriptor 代表一个虚拟文件,这样我就可以实现一些抽象类来放置我自己的流?

最好的问候。

最佳答案

我得到了这个问题的最终答案。 这是 Android 平台上缺少的功能。 Android 媒体播放框架已经很久不支持了。 Google也注意到了,所以Android6.0(API Level23)引入了android.media.MediaDataSource,可以作为纯内存字节数组数据源。在 API Level23 之前,我们仍然需要将内存数据复制到文件系统中的一个临时文件中。

以下网址提供了有关此问题的更多线索,其解释对音频和视频都是正确的: how to play video from byte array in media player

关于java - 在 Android 中从内存中加载声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26844839/

相关文章:

c++ - 如何强制我的 std::map 释放使用的内存?

c# - 如何获取内存中的对象大小?

java - 如何在单个异常中返回异常列表?

java - 将字节写入文件而不删除现有字节

java - 如何将不同的Servlet链接在一起?

java - 从 AndEngine 切换到 libgdx - 需要了解什么?

java : How to use heap beyond 4 GB memory in 32 bit JVM

java - 赋予 ListChangeListener 初始状态

android - 嵌套 fragment 未显示在 ViewPager 中

java - 无法在Android中制作DatePicker