libflashplayer.so是给你提供的库,Netscape提供了一套实现客户端插件的API函数,NPNFuns应该像是提供的接口,需要自己来实现,供插件调用。在浏览器端,像firefox,已经提供了实现,libflashplayer就可以正确的调用来渲染播放flash。
过程应该是:
1. Load flash plugin
使用dlopen打开libflashplayer.so库, 获得库提供的API函数指针,主要有:NP_GetMIMEDescription,NP_Initialize, NP_Shutdown, NP_GetValue.
2. InitializeFuncs
初始化NPNetscapeFuncs函数列表的函数指针,对应的函数需要自己实现,供插件调用
3. Play Swf
调用libflashplayer.so提供的API函数指针,播放swf文件。
主要有:NP_Initialize, NPP_NewProc, NPP_SetWindow, Writing SWF file四个步骤。分别是初始化插件函数列表;创建插件实例,设置基本参数;创建插件渲染的窗口;创建流并使用流进行读写swf文件。
4. 播放完成退出
这是我的理解,具体可以参考上面提供的代码。