[科普贴]为何Flash被淘汰?附Chrome看视频最完美教程!
Adobe 公司放弃
移动
平台的 Flash 支持已经是板上钉钉的事了,
Play 的 Flash 插件也会在 8 月份下架,这在一定程度上也会促进 HTML5 的发展和普及,因此我个人还是对 Adobe 的做法十分赞赏的。
当然,仍然有不少不明真相的用户对失去 Flash 伤心不已。之所以说“不明真相”,因为用户自然是不了解软件行业的技术更迭。对于普遍使用第 4 代 HTML 技术组织网页的时代,Flash 的出现着实丰富了用户的体验,让人眼前一亮。Web 前段开发者需要把 Flash 嵌入 HTML 代码中,而编写 Flash 时则是另一套语法代码,这是不协调、也是不便于维护的。加之 HTML 中的元素与 Flash 内容进行交互也是一个不可逾越的屏障。就好像一个做了隆鼻手术的美女,表面看上去很美,可是她自身的皮肤组织与这个鼻子磨合的并不好。另外,Flash 也是有名的耗电大户,这在靠电池支撑的移动平台尤为伤不起,而 HTML5 则要
省电
的多。这些问题一定程度上催生了 HTML5,当然,HTML4 的问题还远不止的这些。
在 UC、海豚等国产浏览器的宣传语中,支持 HTML5 已然成为了宣传重点,对 HTML5 的支持情况也成了浏览器是否优秀的重要标准。Flash 在逐渐被边缘化直到被完全替代。Google 推出的浏览器 Chrome for Android 就率先做了表率:不再支持 Flash,而支持大量的 HTML5 新特性。(它仅能运行在搭载 Android 4.0 以上的设备,在我个人看来,4.0 才是 Android 真正该有的样子,Google 在这个版本才真正找到方向。扯远了~)。自从这款浏览器面世以来,我就一直在使用,它的清爽与快速让我爱不释手(我在 Windows 和 Linux 都在使用 Chrome,顺便也推荐给各位)。
那么如何利用 Chrome for Android 观看在线视频呢?
方法一:
利用Chrome UA Switcher Lite一键设置让Chrome在线观看优酷、土豆等视频网站视频。
<ignore_js_op>
可以设置Chrome的User Agent
需要root才能运行
推荐安装BusyBox
选择iPhone或者iPad后可以通过Chrome观看优酷、土豆、腾讯视频
此版本中的新功能:
更新了iPad/iPhone的 user agent ( IOS 5.1 )
修正了某些情况无法使用的问题
软件截图:
<ignore_js_op> <ignore_js_op>
cheome浏览器下载:
<ignore_js_op> Chrome2.apk
Chrome UA Switcher Lite下载:
<ignore_js_op> com_appo2_ua_205630.apk
方法二:
Apple 的已故 CEO 乔布斯一直认为 Flash 是垃圾,所以 iPhone、iPad 从来就不支持 Flash,为此国内的视频网站(优酷、土豆、酷6、新浪等)对广大 iOS 用户进行了优化,当判断用户是通过 iOS 设备访问时,即切换到用 HTML5 实现的页面,HTML5 技术会调用系统中的视频播放器进行播放。目前 Android 的主流版本还在 2.3,该版本是支持 Flash 的,所以如果通过 Android 设备访问视频网站时,并未强制使用 HTML5,如果未安装 Flash,便会提示“找不到插件”之类的问题而无法观看视频。那么如果我们把 Android 伪装成 iOS 设备,是不是就可以无需 Flash 插件播放视频了呢?
要知道如何伪装,首先需要简单了解视频网站是如何判断我们手中的设备的。在我们访问一个 Web 页面的时候,浏览器会将一段称为“User-agent”的信息传送给网站,User-agent 按照一定的格式组织了操作系统以及浏览器类型和版本等等信息,例如下面这段 User-agent:
- Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3
视频网站根据此 User-agent 即可知道访问者正使用 iPhone。你可以使用任意的浏览器访问
http://www.whatsmyuseragent.com/
来察看你当前的 User-agent。
下面我们只需要修改浏览器的默认 User-agent 即可。这里以修改 Chrome for Android 举例,其他浏览器请自行搜索修改方法。
在手机的 /data/local 目录下新建文件”chrome-command-line”(需 Root,如何 Root 手机请自行搜索),内容为chrome 的命令行字符串,例如伪装成 iPhone 的 User-agent 可写为:
- chrome --user-agent="Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3"
然后结束掉 Chrome for Android 的进程,重新运行,访问
http://www.whatsmyuseragent.com/
看看是不是已经变成 iPhone 的 User-agent 了。至此就可以免去 Flash 插件看优酷、土豆、酷6等视频了。
对于日常使用来说,这已经足够了,但对于我这种喜欢折腾的人来说还有些美中不足——User-agent 中还包含了浏览器所使用的界面排版引擎、内核版本等等信息,完全替换成 iPhone 的 User-agent 当然和 Chrome 本身的信息略有出入。我经过测试发现:其实只要 User-agent 中包含“iPhone”或“iPad”一词,都可以被识别为 iOS 设备。因此,我通过访问
http://www.whatsmyuseragent.com/
记录下 Chrome for Android 原始的 User-agent 为:
- Mozilla/5.0 (Linux; Android 4.1.1; Galaxy Nexus Build/JRO03C, compatible iPhone) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19
然后根据其略作修改,将”chrome-command-line”文件内容改为:
- chrome --user-agent="Mozilla/5.0 (Linux; Android 4.1.1; Galaxy Nexus Build/JRO03C, compatible iPhone) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19"
可以看到我在中间加入了“compatible iPhone”,由于这段 User-agent 包含了“iPhone”自然就可以“兼容iPhone”了 :),另外手机型号 Galaxy Nexus,系统 Android 4.1.1,Build Tag 是 JRO03C,这些信息都完整保留了下来。在我实际使用中发现,不但可以无压力观看在线视频,而且大多手机网站都可以正常识别我的设备为 Galaxy Nexus!
更多关于 Chrome for Android 的 User-agent 可以参考这里:
https://developers.google.com/chrome/mobile/docs/user-agent
,
至此,我的问题就完美解决了。
最后,也许有人还会问网页 Flash 游戏怎么办?我想答案只能是等待游戏开发者提供 HTML5 的版本。(我没有用手机/平板玩 Flash 游戏的习惯,对我无影响)处在 2 种技术的切换时期,这种情况在所难免。当然,还没有必要现在就去担心这些,毕竟你仍可以使用手中的 Android 2.2/2.3/4.0 配合 Flash继续“偷菜”、“开超市”(看视频还是使用 HTML5 为好,别忘了“省电”)。又或者等到 HTML5 普及了,会出现大量更加优秀的游戏,你就会忘了你那片儿菜地了……
————————————————————————————————————————————————————
有朋友反馈看优酷有声音、无画面的问题:
首先各家视频网站在 HTML5 技术的支持水平上是有一定差异差异,比如,奇艺就可以很完美的观看。
【解决办法】将优酷的视频进入全屏后,向后托拽进度条一下(托拽多少无所谓),就会有画面、有声音完美播放了。
<ignore_js_op>
=------------------------------------------------------------------------------------------
鉴于很多同学说无法保存,特地打包了一份:
修改 chrome for android的user-agent主要用于伪装ipad/iphone浏览HTML5网页
需要手机有ROOT权限
然后在/data/local下面手动添加文件"chrome-command-line"
其内容是chrome的命令行字串
例如:
把Chrome伪装模拟成iPad的User Agent字符串:
chrome --user-agent="iPad"
把Chrome伪装模拟成iPhone的User Agent字符串:
chrome --user-agent="iPhone"
保存然后杀掉chrome进程,重新打开就看到效果了。
--------------------------------------------------