赞 | 67 |
VIP | 6 |
好人卡 | 4 |
积分 | 148 |
经验 | 45301 |
最后登录 | 2024-11-23 |
在线时间 | 5844 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 14802
- 在线时间
- 5844 小时
- 注册时间
- 2011-7-18
- 帖子
- 159
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 gqxastg 于 2024-11-9 21:30 编辑
起因是前段时间看到有人整理“使用RGD后的播放视频解决方案”,结果还是没什么稳定的替代方案
我就想起了SINVideo这个用DirectShow写入Bitmap内存来实现的老物(原贴:https://rpg.blue/thread-306831-1-1.html)
不知是帖子标题难以搜索、效率或兼容存在问题还是单纯年代过于久远的原因,一直都没什么讨论度,感到颇为可惜
试着用RGD的Bitmap#process_color改造了一下发现效率还算可以,800x600+60FPS的视频基本也运行能稳60帧
本来到这里就算完了,然后我就发现SINVideo实现的功能太少了...基本上除了播放和停止,只有个变更音量和重播,甚至连暂停都没有
于是去翻阅了文档把DirectShow本来有的几个方法加上了,因为没dll实际源码也没编译环境,还是采用的内存修改的方式做的拓展
由于对汇编不怎么了解实在是苦战了一番,不过多亏原贴有附同种实现的源码,花了一周多时间也终于还是搞定了
我个人没有放视频的需求,囤手里烂了也不应当,分享出来看看能不能作为一种解决方案吧
为了方便演示,顺带研究了一下截获窗口标题的FPS值,搞了一些基于RGD和RGSS300/301.dll的内核修改,大概过些日子也会发布【当然这个是后话了
已在Win10/Win7环境下,使用RGD(v1.3.2/1.5.4/1.6.1)/VA/XP测试通过,暂未发现问题
【人家dll都现成的 就算有问题我也没(bu)法(fang)修(bian)x
视频文件基本只支持AVI格式和MPEG系列编码,可以用格式工厂之类的工具查看和转换
以及理所当然的,视频文件不支持放入加密档
由于使用起来需要一定的代码基础,推荐下载范例工程
原版演示视频无声,Video文件夹下另行准备了名为title1.avi的视频文件,将其替换title.avi可用于测试音频相关的功能
按ESC/X键暂停继续,左右键变速,上下键调整音量,A/S键调整声道
进入标题画面并开始游戏后,与NPC交互以演示在地图上播放视频(故意将视频坐标调整到了玩家脚下)
截图(GIF警告)
范例工程(推荐)
SINVideo.dll 核心
SINVideo for RGD 本体脚本
SINVideo_RGD
SINVideo 拓展插件(请置于本体下方)
SINVideo_Hacker
附:演示代码(RGD/VA用)
SINVideoDemo
附:游戏窗口失去/获得焦点时自动暂停/继续播放的小插件(RGD用)
|
评分
-
查看全部评分
|