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

本文介绍了如何在Linux系统中利用libflashplayer.so库来加载和播放Flash内容。首先通过dlopen加载库,获取API函数指针,接着初始化NPNetscapeFuncs,然后调用NP_Initialize等函数播放SWF文件。流程包括加载插件、初始化、创建窗口及写入SWF文件。最后,当播放完成后退出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引用 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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值