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,這些跟系統相關的需要我們自己來實現。
目前就是這個思路,接下來我會開始實現這些功能。
總結
以上是生活随笔為你收集整理的swf 格式Flash 动画播放器在Android上的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java面向对象【集合】
- 下一篇: Unity3d之Quaternion 学