Cocos2d-x VLC Player

来源:互联网 发布:网络金融最初发展阶段 编辑:程序博客网 时间:2024/05/14 07:35
        由于项目需要用到动态的背景,测试发现,如果用帧序列动画将占用超过1G的内存,而CPU的利用率则一直保持在5%左右,所以想到将动态效果做成视频,循环播放,以作为背景之用。查询之下发现cocos2d-x本身带有一个叫做VideoPlayer的类,但是很可惜,它们只能用在移动平台上,而笔者的项目是基于Windows平台的,所以便在网上搜索实现方法,最终利用VLC Player实现了所需的效果。
        首先需要下载VLC Player播放器,安装之后可以在安装目录下的SDK文件夹内找到头文件、lib、dll。
        其实原理也很简单,就是利用VLC从视频中提取数据流,然后打入buffer中,然后以buffer作为纹理绘制整个画面,代码如下:
        最后说明一下,可以看到有一些函数以"o_"为开头,怎么会这么奇怪呢~~笔者之前没有加这个前缀,结果resume函数跟Node类的resume函数重名了,根据类的继承规则,Node的resume函数被"遮挡"住了,导致该节点没办法正常的恢复动作,比如,笔者在init方法里调用了scheduleUpdate方法,结果update方法却一直不被调用,查来查去,才发现是Node的resume方法被"遮挡"了,节点没有被正确的恢复。
        当然,还有一种办法就是在VLC类的resume方法里调用Node的resume方法,不过这样做可能导致一些不灵活的情况,所以笔者最终选择了改变函数名称。

1 0