在我的应用程序中,我需要为用户提供渐进式下载(视频文件)的预览。
为了实现这一目标,我正在使用VideoView
组件来显示正在下载的视频内容(.mp4,.3gpp)。
问题在于我无法通过http://
或rtsp://
协议访问远程媒体,因此在下载时我被迫使用VideoView.setVideoPath
播放视频的本地副本。
不幸的是,在Android设备上似乎无法使用StageFright
框架(根据我的经验,OpenCore
和某些Tegra2-based
设备),VideoView
无法正确处理渐进式下载:它只能播放组件初始化期间识别的部分视频。
所以要明确一点:如果用户只在下载了5%的视频时按“播放”,则视频中只有5%的视频会显示,无论是否同时下载了更多的视频内容。 / p>
根据我的经验,此问题不会影响使用StageFright
框架的设备(例如:Nexus One 2.2,Nexus One 2.3.4)。
有人能指出我可能的解决方案吗? 提前致谢
答案 0 :(得分:2)
答案 1 :(得分:1)
VideoView是Android应用程序框架中的一个随时可用的类,用于视频播放用例。它在内部使用MediaPlayer类来实现播放。 MediaPlayer使用内部可用的媒体框架,基于某些标准,如文件格式,内容来源等。
所以限制来自底层框架,而不是VideoView。如果您仍然怀疑VideoView,那么使用媒体播放器编写您自己的视频播放器活动。你会看到相同的结果。
并非所有版本的Android(读作stagefright)都支持渐进式下载。
您可以使用DownloadManager类从http服务器下载内容,并提供媒体播放器/视频视图的路径以便快速预览。
Shash316