版权声明:本文为CSDN博主「蓬 蒿 人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
UE 的媒体框架
UE4 的媒体框架 可用于播放本地视频、视频流以及图片序列。可以利用这些功能实现在场景中播放视频,例如,在场景中有一个电视机模型,可以通过按键交互控制电视画面的播放、暂停以及关闭。
以播放单个视频为例,需要的资源有:
- 视频文件:将 MediaPlayer 支持的视频格式文件放到
Content/Movies目录下 - 视频源:FileMediaSource 或者 StreamMediaSource,本地视频就是视频文件路径,视频流就是 URL(官方Demo)
- 视频播放器:MediaPlayer,可用于播放视频源
- 视频帧贴图:MediaTexture, MediaPlayer 只能 用于播放视频源,不能 显示在场景中,但是可以将视频帧渲染到 MediaTexture 中,再通过 MediaTexture 创建材质赋予模型
- 视频帧材质:Material,将 MediaTexture 作为纹理贴图,从而显示到模型表面
具体的实现步骤
将 Demo.mp4 文件放到 Content/Movies 目录下,Movies 目录下的媒体文件在打包之后会一起复制到打包目录下,如果在其他目录要额外设置。
准备 Meida Source
创建一个 File Media Source ,命名为 VideoSource
File Path 引用到 Demo.mp4
准备 Media Player
创建 Media Player,命名为 VideoPlayer
创建 Media Player 时会弹出对话框,对话框中勾选 Video output Media Texture asset 项(可以同时创建对应的 Media Texture),如果未勾选也可以自行创建该纹理
双击打开 VideoPlayer ,在左下角能看到所有的 Media Source 列表,双击任何一个就可以播放该视频,在右下角的 Details 面板有一些设置项,可将鼠标悬停查看说明
准备 Media Texture(设置 Media Player 属性并创建纹理材质)
创建 Media Texture ,命名为 TVTexture ,如果上面已经创建直接重命名就可以了
打开 TVTexture ,将 Media Player 属性值引用到 VideoPlayer
在内容浏览器中 TVTexture 资源上右键 CreateMaterial 创建材质,命名为 TVMaterial
编写蓝图代码
打开关卡蓝图,创建一个 Media Player 类型的变量,默认值设置为上面创建的 VideoPlayer
在关卡蓝图中添加 空格按键 事件,蓝图代码如下
OpenSource 用于打开视频源,在 Play 之前至少调用一次,停止播放的函数为 Close,还可以增加一个关闭视频功能
在关卡中加入一个 平面 作为视频播放屏幕(电视机屏幕),调整位置大小和方向,完成以上步骤后运行,按下空格键控制视频的播放和暂停,退格键关闭视频
Media Player 还有很多其他的函数用于控制视频的播放
播放 视频流 和 图片序列 等媒体文件与上面的步骤类似,可参考官方文档。