0

我正在使用 aMediaController和 aVideoView来显示我通过 HTTP 从 Amazon S3 流式传输的视频。

我想让视频文件在他们第一次被观看后离线访问。流媒体运行良好,我的问题是 Android 将视频文件保存在哪里,并且在完全观看视频后它们实际上是否可以访问(因此必须完全下载)。

这两个类的文档都没有提供有关此问题的任何详细信息,无论媒体文件是否存储,也没有提供它们将存储在哪里。感觉这对 .com 来说将是一项伟大的任务MediaController,但我真的无处可寻。

我现在的解决方案是使用 的实例DownloadManager,即在流式传输时并行下载文件,但这感觉非常非常错误!

4

1 回答 1

2

VideoViewAndroid 中使用MediaPlayerAPI,在远程媒体的情况下,它将流式传输并即时解码/在屏幕上渲染。

MediaPlayer不会在设备的闪存上存储任何内容,而是使用内存中的循环缓冲区,用作预处理缓存。NuCacheSource2实现的源代码中提供了更多信息。

现在,您可以解决问题的方法是编写一个代理,该代理将在您的设备或您想要保存媒体的其他地方运行。在下载远程媒体时,它将能够将其保存在文件系统上,同时将数据转发到 Android 的MediaPlayer. 在这种情况下,您需要提供MediaPlayer一个指向您的代理的 URL,而不是指向远程媒体所在的原始位置。

于 2014-05-27T08:51:43.727 回答