幻世(OurDream)2D图形引擎使用教程12——播放媒体文件(2)

声明:本教程版权归Lizcst Software Lab所有,欢迎转载,但是转载必须保留本段声明文字,并注明文章来源:http://blog.csdn.net/kflizcst

谢谢合作!


        前面我们了解了如何使用ISoundSystem接口播放音频,非常的简单易用,但是在使用的过程中,我们也发现了这个接口的一些局限,主要的当然也是最大的问题就在于ISoundSystem支持的媒体格式太少了,主流的,使用起来更具优势的媒体格式都不支持,这给我们的一些应用带来了问题。好在,幻世引擎还提供了另一个更为强大的多媒体接口来弥补这些不足,这便是IMediaSystem接口!

        IMediaSystem接口提供了比ISoundSystem更加强大的媒体格式支持,理论上只要系统中正确安装了相应格式的解码器,IMediaSystem就可以完成播放任务,同时,在使用上依然保持了与ISoundSystem一样的简便!是不是有些迫不及待的想见识一下?!好!这篇教程,就将让我们学会如何使用这一强大的工具!

        [使用IMediaSystem播放音频]

        下面的讲解,我会只关注于核心的部分,其他繁复的细节就不多说了,请各位下载教程附带的演示代码了解全部内容。

        1、与ISoundSystem一样,IMediaSystem也同样只需简单的向幻世引擎主接口申请即可获得。

 

        2、接着,我们使用接口提供的AddMedia函数来加载需要使用的媒体文件了。

 

        这里需要注意的是该函数的参数,我逐一介绍一下:

        A、该资源的ID

        B、媒体资源文件的路径,该参数必须提供宽字符的文本路径,最好如我的演示程序这般通过系统提供的API来完成文本的转换,不要使用强制类型转换等,否则可能会由于路径无法识别而导致媒体加载播放失败。

        C、该媒体文件的播放区域,这个参数对于音频媒体文件是无效的,对于视频媒体文件,该参数指示视频图像显示的区域位置(绘图窗口的矩形区域)。

        3、完成了媒体文件的添加就可以在需要的时候使用Play函数播放这个文件了。

 

        代码其实和使用ISoundSystem接口播放文件差不多,这也是幻世引擎力求做到的一致调用与易用性,

        4、最后我们编译并且运行(截图就不展示了,请下载教程演示代码查看)。

 

         [使用IMediaSystem播放视频]

        前面我们提到使用IMediaSystem接口还能够播放视频媒体,这非常适合某些展示场合,例如游戏程序的片头或过关动画等等。那么具体如何实现呢?

        其实主要的流程与上面的播放音频媒体是一样,唯一的区别在于,由于视频媒体需要处理控制操作,因此,需要在帧处理函数部分添加IMediaSystem接口的OnEvent函数即可,其实也非常的简单。

 

        具体的演示代码,我就不详述了,请下载演示代码查看。

 

        这是最终完成后的效果,呵呵,看上去还不错吧?这里再提一下前面曾今说过的AddMedia函数的参数三,该参数指定的就是播放视频画面显示的位置及尺寸。最好将尺寸设定为视频文件画面的实际尺寸或更小些,如果尺寸设置大于实际画面将会导致视频被拉伸,影响图像效果。


        [完成]

        幻世引擎的多媒体播放系统,我们就学习完了。当然幻世本身提供的各种媒体播放及效果还需要更多深入的研究和学习!从下一篇教程开始,我们将接触幻世引擎的GUI图形用户界面系统,敬请期待!

 

        [示例代码下载]

        全部源代码下载:http://kuai.xunlei.com/d/BiIvAPfM8FmuUgQAa68

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值