读贴小摘《linux C/C++, 使用libflashplayer.so, 控制flash文件的播放》

http://topic.csdn.net/u/20090104/16/ee2ab4a4-eec9-42a3-8cd0-7c18a992dca9.html
引用 21 楼 frankpzh 的回复:
Netscape Client Plugin API和libflashplayer是什么关系啊?
我觉得NPNFuncs是flash的回调函数,你自己实现了提供给libflashplayer用的,不应该是由你来调用的
如果要向flashplayer提供流,应该是libflashplayer API的函数才是



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. 播放完成退出

这是我的理解,具体可以参考上面提供的代码。

 

http://www.google.cn/codesearch/p?hl=zh-CN#7dyAN_vlVX0/flasher-0.2/flasher.c&q=libflashplayer.so%20lang:c

你可能感兴趣的:(读贴小摘《linux C/C++, 使用libflashplayer.so, 控制flash文件的播放》)