我需要知道mediaplayer在默认情况下通过渐进式下载“流式传输”音频/视频内容时在何处/如何缓存这些内容。
我们正在评估android媒体播放器应用程序的选项。一个值得关注的问题是防止内容被复制(在可能的范围内)。渐进式下载有很多优点,但我们需要确保采取合理措施保护媒体。我一定是在错误的地方做了错误的搜索,因为我还没有找到关于这个的任何细节。我已经搜索了我们的测试设备的文件系统,试图从我们的测试渐进下载应用程序中找到任何缓存的文件-但没有结果(这对我们的目的来说可能是好的)。
最佳答案
在android中,MediaPlayer
是一个顶级类,它抽象了底层的播放器引擎。在MediaPlayer
中,整个处理过程分为三个主要部分
MediaTrack ==> OMXCodec / ACodec ==> Sink
其中
MediaTrack
是一个基于MediaExtractor
的跟踪特定实现,它是解析器引擎。MediaExtractor
用一个DataSource
初始化,它提取输入源。对于渐进式下载,DataSource
的实现将是主要焦点,因为这将为下游组件提供缓冲区。由于android平台工作在pull模型上,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