默认情况下,我需要知道 MediaPlayer 在通过渐进式下载“流式传输”时缓存音频/视频内容的位置/方式。
我们正在评估 Android 媒体播放器应用程序的选项。值得关注的一项是防止内容被复制(在可能的范围内)。渐进式下载有很多好处,但我们需要确保采取合理的措施来保护媒体。我一定是在错误的地方进行了错误的搜索,因为我无法找到这方面的任何细节。我已经搜索了我们的测试设备的文件系统,试图从我们的测试渐进式下载应用程序中找到任何缓存的文件——但无济于事(这对我们来说可能很好)。
默认情况下,我需要知道 MediaPlayer 在通过渐进式下载“流式传输”时缓存音频/视频内容的位置/方式。
我们正在评估 Android 媒体播放器应用程序的选项。值得关注的一项是防止内容被复制(在可能的范围内)。渐进式下载有很多好处,但我们需要确保采取合理的措施来保护媒体。我一定是在错误的地方进行了错误的搜索,因为我无法找到这方面的任何细节。我已经搜索了我们的测试设备的文件系统,试图从我们的测试渐进式下载应用程序中找到任何缓存的文件——但无济于事(这对我们来说可能很好)。
在 Android 中,MediaPlayer
是一个抽象底层播放器引擎的顶级类。在 中MediaPlayer
,整体处理分为 3 个主要部分:
MediaTrack ==> OMXCodec / ACodec ==> Sink
解析器引擎基于哪MediaTrack
一个轨道特定的实现。MediaExtractor
MediaExtractor
DataSource
用抽象输入源的 a 进行初始化。对于您的渐进式下载,实现DataSource
将是主要焦点,因为这将为下游组件提供缓冲区。由于Android平台工作在拉模型上,DataSource
将控制提供数据的速率。
在 AOSP 中,您可以参考http://androidxref.com/4.2.2_r1/xref/frameworks/base/media/java/android/media/MediaPlayer.java#2132中的示例实现。有关HTTPSource
实施的更多信息,请参阅 http://androidxref.com/4.2.2_r1/xref/frameworks/av/media/libstagefright/HTTPBase.cpp#47