【发布时间】:2013-09-05 16:38:57
【问题描述】:
我正在考虑是否可以为 Android 编写一个应用程序,该应用程序允许用户从网站下载 Flash 视频,而无需让用户在浏览器中手动开始播放每个视频。该应用程序还应该适用于任何播放 Flash 视频的网站,而不仅仅是某些特定网站。该应用程序不需要root。
在做完功课和谷歌搜索后,我得出的结论是这样的应用程序是不可能的,但我只是希望更有经验的人确认这一点(或者如果我错了,可能会建议解决方法)。
这样的应用程序如何(理论上,理想地)工作:
应用程序启动一个在后台线程中运行的服务,甚至不需要打开的活动。
服务加载视频所在的网页(html文件)
应用解析页面以找到正常播放视频的 .swf 文件
应用以某种方式向 swf 文件中的操作脚本发送虚假点击,就好像用户按下“播放”一样
过了一会儿,应用程序检查了 webview 的缓存(但是,没有向用户显示任何活动)。如果缓存中有任何 .flv 文件,它会将它们复制到 SD 卡上的某个文件夹中
在这个方案中,很多事情可能会失败:
在 3 中:我不确定是否可以模拟单击 swf 文件的“播放”按钮,特别是如果我们不知道我们所在的确切网站(我们希望该应用程序可以在任何网站上运行)和网站使用他们自己的、自定义编写的 swf flash 播放器。此外,如果我们甚至没有正在运行的活动,我也不确定 .swf 文件是否会处于可以接收输入的状态
在 4 中:Web 缓存存储在 /data/data/app_package_name/cache/webViewCacheChromium 下,即使应用程序本身 (?) 也无法访问此文件夹,除非手机已植根。
我想就是这样,所以应该不可能做出这样的应用程序。
顺便说一句,谷歌浏览器的 FVD 扩展是否通过扫描 Chrome 浏览器缓存来获取 FLV 文件?
谢谢!
编辑:我知道 Youtube 现在使用 html5,我不想下载 Youtube 视频。
编辑:我见过一些适用于特定网站(例如 Youtube)的应用程序,但制作这样的应用程序是不可行的,因为网站改变了他们提供 flv 文件作为基本防御的方式。我的问题是关于开始假播放并获取已经在缓存中的视频文件。
【问题讨论】:
标签: android flash video download flv