swf 格式Flash 动画播放器在Android上的实现
首先明确一点,swf格式和其他的一些视频格式有很大的区别。 它里面不仅有音频还有其他的各种元素(术语叫块类型)包括但不仅限于: 矢量图、图片、文字、字体、片段动画、按钮、帧、动作、音频等等 你需要将这些元素一一解析并渲染出来。 这种格式是允许用户来互动的,你像大多数flash游戏,用户可以点击按钮产生不同的动画效果。这就说明swf格式里面还有 代码来控制这些行为。 下面来谈实现: 我们要想自己来写一个swf格式的播放器似乎不太现实,因为有文件解析,mp3解码,事件处理,图片渲染等等对于我们来说 太复杂,也太耗时。 在网上找了几个开源的swf播放器源码,像swfdec ? fliter等,我最近有研究了下fliter。但发现它只被维护到2006年就没再继续维护,所以 我们后来出来的一些flash它都没法播放,这个需要我们自己去添加相应的块类型处理。 android上实现需要将swfdec或者fliter移植到android平台,但是无论是swfdec还是fliter都依赖好些lib ,如fliter依赖与libz libjpeg ?libmad等 而且这些都是必须的,比如libz 因为有的块采用的是压缩的格式所以要解压,libjpeg是解析图片,libmad是mp3解码。因此我们要移植fliter首先 得把这三个lib使用交叉编译的方式用ndk编译出来,再来供libfliter来使用。 另外还有一个艰巨的任务就是音频和视频的渲染,需要使用到android的audiotrack和surface,这些跟系统相关的需要我们自己来实现。 目前就是这个思路,接下来我会开始实现这些功能。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |