OGRE 中通过 TheoraVideoPlugin 实现视频播放

 昨天搞到零点才弄出来效果。本来不知道,原来Theora是一个纯开源项目。对Linux支持比较好,所以他的安装也应该遵循“Linux软件包安装规范”。那就是“永无止境”的包依赖。。于是乎,编译TheoraVideoPlugin必须先编译libtheora(http://theora.org/),ptypes(http://www.melikyan.com/ptypes/),libogg和libvorbis(http://www.vorbis.com/)。


整理一下,我基本上编译了如下动态库:


1. ptypes-2.1.1

2. libogg-1.1.4

3. libtheora-1.1.1

4. libvorbis-1.2.3


最后就是TheoraVideoPlugin,我使用的是SVN版(http://ogrevideo.svn.sourceforge.net/viewvc/ogrevideo/trunk)


关于依赖,TheoraVideoPlugin自己的描述如下:


*****************************************************************************
                This PlugIn uses the following resources:

Ogre - see above // 这是最基本的了
Ogg / Vorbis / Theora www.xiph.org
C++ Portable Types Library (PTypes - http://www.melikyan.com/ptypes/ )

*****************************************************************************


一路编译,基本没什么大问题。为了保持一致,我都选择release版(其他还有debug,optimized debug和SSE/SSE2)。

然后把得到的h/lib/dll整理出来,放到编译器找得到的地方,就可以开工了~~


看了一下TheoraVideoPlugin自带的demo,很简单,不过运行时老出错。于是就想,如果lib没问题,那就自己手动写一个吧。


1. 首先创建一个TheoraVideoManager的全局实例(这个和OGRE里的Root一样,都是继承自OGRE的Singleton~)

2. 设置输入文件名TheoraVideoManager::setInputName("konqi.ogg");可以使用OGRE的资源管理器,很方便

3. 创建视频到一个已定义的纹理上。哦,对了,首先你需要有个OGRE的纹理实例,可以手动写,也可以加载Material文件里的。

    createDefinedTexture("video_mat",ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);

4. 在FrameListener里调用TheoraVideoManager的frameStarted(),因为他也是继承自FrameListener的。


是啊,就这么简单。呵呵,当然,这只是将视频赋予了一个纹理通道上。要显示嘛,弄个Plane绑到场景节点上,把材质赋予给他,就OK了~


好了,留个截图。可以去睡觉了~~





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值