快播大屏幕是快播推出的一款硬件产品。
快播的主要参数如下:
其实快播大屏幕就是一款HDMI dongle,这点不同于usb dongle,因为HDMI dongle的定位是多屏互动,而usb dongle的定位是视频播放。
快播大屏幕的评测文章其实有很多,我就不评测这款产品了,主要说说快播推出这块产品的真正目的。
快播主要靠QVOD这款播放器起家的,类似于当初的迅雷,靠打擦边球起家。目前主要赢利点应该有几块:一是播放器流量部分,二是播放器的广告部分,三是快玩的游戏部分。为啥要推出快播大屏幕呢?快播主要依赖于PC互联网,而在移动互联网这一块快播显然没有优势,因为有视频网站的移动客户端和百度影音这样强大的竞争对手,另外播放器在手机和PAD上本来就没有任何优势。而快播在PC互联网遇到了发展瓶颈,但是移动互联网找到方法,需要寻找新的利润增长点,以便可以IPO进入资本市场。
快播大屏幕可以填补快播的遗憾,可以将移动屏和电视屏打通,吸引移动互联网玩家的关注。首先快播希望通过这个实现和第三方厂商合作,实现增值服务。另外快播大屏幕可以将移动屏变成PC屏一样,那么它的播放器和快玩跟在PC屏上使用没什么两样,那么更加会吸引移动互联网玩家的眼球,进一步扩大快播的用户群。
我想这才是快播推出快播大屏幕的主要原因。
Advanced Flash Tactics or AFTs are techniques that come from deep within the Flash Art Of War, the oldest Flash military treatise in the world. Each AFT is designed to be quickly digested,
在flash.utils包中,我们可以用describeType来处理反射。为了使用describeType,你将需要导入它所在包,然后调用describeType并传递任何类的实例做为参数。下面是一个快速入门的例子:
import flash.text.TextField; import flash.utils.describeType; var classAsXML:XML = describeType(new TextField()); trace(classAsXML.toXMLString());
输出:
var list : XMLList = classAsXML.*; var propMap : Object = new Object(); var item : XML; for each (item in list) { var itemName : String = item.name().toString(); switch(itemName) { case "variable": propMap[item.@name.toString()] = item.@type.toString(); break; case "accessor": var access : String = item.@access; if((access == "readwrite") || (access == "writeonly")) { propMap[item.@name.toString()] = item.@type.toString(); } break; } } // Output the contents of the propMap object for (var prop:String in propMap) { trace(prop, "-", propMap[prop]); }
首先用busybox制作根文件系统,参考我之前的博客:http://blog.csdn.net/start530/article/details/8018170
yaffs2源码下载:http://download.csdn.net/detail/chenxh/4186203
1.解压: tar -jxvf yaffs_source_util_larger_small_page_nand.tar.bz2 生成了一个[yaffs2]文件夹
第2、3步的前提是你内核里不支持yaffs2文件系统,及在内核/fs/下没有一个yaffs2目录。
2.拷贝[yaffs2]文件夹至Kernel根目录下的[fs]文件夹下: cp yaffs2 /usr/src/linux-2.6.36/fs/
3.操作: ./patch-ker.sh c /usr/src/linux-2.6.36/[这个是我Kernel的根目录的路径,请按照你的进行修改]
上面命令完成下面三件事:
(1) 修改内核fs/Kconfig
增加一行:source "fs/yaffs2/Kconfig"
(2) 修改内核fs/Kconfig
增加一行:ojb-$(CONFIG_YAFFS_FS) +=yaffs2/
(3) 在内核fs/目录下创建yaffs2目录
将yaffs2源码目录下面的Makefile.kernel文件复制为内核fs/yaffs2/Makefie;
将yaffs2 源码目录的Kconfig文件复制到内核fs/yaffs2目录下;
将yaffs2源码目录下的*.c *.h文件复制到内核fs/yaffs2目录下.
4.进入Kernel根目录: cd /usr/src/linux-2.6.36/
5.操作: make menuconfig 进入内核设置界面
6.进入主界面的File systems --->
7.进入: [*] Miscellaneous filesystems --->
8.选中: <*> YAFFS2 file system support
9.保存&退出.
使用以下命令安装好yaffs文件系统制作工具:
mkyaffs2image 可执行文件是使用 Linux3.0 源代码目录 yaffs2 文件夹下 util s
目录中的 mkyaffs2image.c 文件编译出来的,如果您有兴趣可以自己制作适合 256MB
NandFlash 和 2G NandFlash 的 Yaffs2 工具。
在/nfsroot/目录下,使用命令mkyaffs2image rootfs rootfs.img生成根文件系统映像文件。
烧写:
设置uboot:
首先来看下我的分区表:(在开发板启动内核的时候会看到下面这几行)
0x000000000000-0x000000100000 : "Bootloader"
0x000000100000-0x000000600000 : "Kernel"
0x000000600000-0x000007e00000 : "User"
0x000007e00000-0x000080000000 : "File System"
setenv bootargs root=/dev/mtdblock3 rootfstype=yaffs2 init=/linuxrc console=ttySAC0,115200
Setenv bootcmd
Printenv
Saveenv
用tftp下载zImage跟rootfs.img,并写入nand flash
zImage:
Tftp 50008000 zImage
Nand erase 100000 500000
Nand write.e 50008000 100000 500000
rootfs.img:
Tftp 50008000 rootfs.img
Nand erase 7e00000 8000000
Nand write.e 50008000 7e00000 8000000
重启。
*************************************************************************************
如果要修改uboot的bootargs跟bootcmd的话,
在开发板带的uboot1.16里的include/configs/smdk6410.h
#define CONFIG_BOOTCOMMAND "nand read 0xc0008000 0x100000 0x300000;bootm 0xc0008000"
#define CONFIG_BOOTARGS "root=/dev/mtdblock2 rootfstype=yaffs2 console=tty0 console=ttySAC0,115200"
//#define CONFIG_BOOTARGS "root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200"
保存后重新编译uboot,
Make smdk6410_config
make;