• 8678阅读
  • 17回复

APlayer 插件系统介绍 [复制链接]

上一主题 下一主题
离线aplayer
 

只看楼主 正序阅读 使用道具 楼主  发表于: 2014-08-25
— 本帖被 aplayer 执行取消置顶操作(2014-08-25) —
有时候调用者有获取或者修改 APlayer 解码后的图像或者音频的需求,APlayer 通过插件系统来支持这种需求:

具体来说 APlayer 插件是一个导出特定函数的 DLL,可以被 APlayer 加载,插件DLL的导出函数原形和具体实现方式可以参考 APlayerSDK 中的例子 PluginDemo 的源代码,
APlayer 加载插件后,会把解码后的图像(未压缩格式YUV)或音频(PCM)通过接口推送给插件,这样插件就可以进行进一步处理;
需要注意的是,因为推送函数是在渲染链路中的,所以需要较高性能执行,尽快返回,以免影响后续的渲染(造成慢动作或音视频不同步)。

APlayer 支持加载多个插件,插件的区分就是完整文件路径名。
APlayer 插件系统需要 vsfilter.dll 和 audioswitcher.dll 这两个解码器的支持,且视频回调在开启硬件加速时不可用。

下图是 APlayerSDK 中的一个 APlayer 插件 PluginDemo 的运行效果:






离线aplayer

只看该作者 17楼 发表于: 2020-03-20
回 18817383482 的帖子
18817383482:管理员你好:
        最近研究APlayer,发现其强大,所以决定自己决定基于APlayer开发一款视频播放器,由于我对WPF较为熟悉,所以准备用WPF做,但是要在WPF里面用Windows .. (2019-05-04 16:48) 

方法是可行的,开启软解图像是可以回调到插件的。
离线aplayer

只看该作者 16楼 发表于: 2020-03-20
回 zhangsongkl 的帖子
zhangsongkl:导出那些指定函数名,有没有插件帮助手册。 (2020-03-20 09:53) 

不好意思没说明白,是 APlayer 插件只是普通的 Windows DLL,插件源代码在 APlayerSDK 的 APlayerSDK\samples\PluginDemo 目录中有。
离线zhangsongkl

只看该作者 15楼 发表于: 2020-03-20
回 aplayer 的帖子
aplayer:易语言我不熟悉,没法帮到你,APlayer 其实就是个标准 Windows DLL 导出几个指定名字的函数而已,如果易语言可以写标准 Windows DLL 的话应该不难做到。 (2019-04-03 12:59) 

导出那些指定函数名,有没有插件帮助手册。
离线18817383482

只看该作者 14楼 发表于: 2019-05-04
管理员你好:
        最近研究APlayer,发现其强大,所以决定自己决定基于APlayer开发一款视频播放器,由于我对WPF较为熟悉,所以准备用WPF做,但是要在WPF里面用WindowsFormsHost来承载Form Control,但是这样交互不太好,缺少了WPF强大的UI支持。所以决定寻路WPF解决方案。发现VLC的解决方案是通过自己的解码器执行两个用户可传入的回调,一次是视频开始解码时接收用户的一个回调,用户自己创建内存映射,将映射地址返回给VLC,第二次是VLC每解析一帧图像便执行第二个回调通知内存中图像已更新,让用户去更新WPF中的Image。这个解决方案目前来说和WPF集成度简直完美,性能也很好,播放很流畅。我想问一下APlayer目前有没有类似的对WPF的解决方案,若没有,后期是否会加入?我目前想到一个解决方案,就是基于APlayer插件系统,开发一款插件,接受一个用户回调作为参数,当APlayer将每一帧图像传来时,将其保存到内存映射,执行这个用户回调通知调用方(WPF)内存已更新,然后调用方(WPF)就可以事实更新UI上的Image?请问管理员这个方案是否可行?
离线aplayer

只看该作者 13楼 发表于: 2019-04-03
回 lgc189 的帖子
lgc189:楼主也不回复~~~~ (2019-04-01 00:58) 

易语言我不熟悉,没法帮到你,APlayer 其实就是个标准 Windows DLL 导出几个指定名字的函数而已,如果易语言可以写标准 Windows DLL 的话应该不难做到。
离线lgc189

只看该作者 12楼 发表于: 2019-04-01
楼主也不回复~~~~
离线lgc189

只看该作者 11楼 发表于: 2019-02-11
回 kzhw83 的帖子
kzhw83:
楼主,这个插件,能否写个易语言版本。C++看不懂

管理大大您好!同求 易语言版本的插件例子!麻烦管理大大了
本帖提到的人: @aplayer
离线工程师

只看该作者 10楼 发表于: 2017-09-26
不错的扩展功能。
离线kzhw83

只看该作者 9楼 发表于: 2017-01-03
楼主,这个插件,能否写个易语言版本。C++看不懂
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个