UE4学习笔记:如何在场景中播放视频

       UE4的媒体框架(https://docs.unrealengine.com/en-US/Engine/MediaFramework/index.html)可用于播放本地视频、视频流以及图片序列。可以利用这些功能实现在场景中播放视频,例如在场景中有一个电视机模型,可以通过按键交互控制电视画面的播放、暂停以及关闭。
      以播放单个视频为例,需要的资源有:
       1、视频文件:将MediaPlayer支持的视频格式文件放到Content/Movies目录下
       2、视频源:FileMediaSource或者StreamMediaSource,本地视频就是视频文件路径,视频流就是URL(官方Demo:https://docs.unrealengine.com/Attachments/Engine/MediaFramework/HowTo/StreamMediaSource/Infiltrator%20Demo.mp4)
       3、视频播放器:MediaPlayer,可用于播放视频源
       4、视频帧贴图:MediaTexture,MediaPlayer只能用于播放视频源,不能显示在场景中,但是可以将视频帧渲染到MediaTexture中,再通过MediaTexture创建材质赋予模型
       5、视频帧材质:Material,将MediaTexture作为纹理贴图,从而显示到模型表面
       

       下面是具体的实现步骤。
       将Demo.mp4文件放到Content/Movies目录下,Movies目录下的媒体文件在打包之后会一起复制到打包目录下,如果在其他目录要额外设置。
       创建一个FileMediaSource,命名为VideoSource
UE4学习笔记:如何在场景中播放视频
       FilePath引用到Demo.mp4
UE4学习笔记:如何在场景中播放视频
       创建MediaPlayer,命名为VideoPlayer
UE4学习笔记:如何在场景中播放视频
       创建MediaPlayer时会弹出对话框,对话框中勾选Video output Media Texture asset项可以同时创建对应的MediaTexture,如果未勾选也可以自行创建
UE4学习笔记:如何在场景中播放视频
       双击打开VideoPlayer,在左下角能看到所有的MediaSource列表,双击任何一个就可以播放该视频,在右下角的Details面板有一些设置项,可将鼠标悬停查看说明
UE4学习笔记:如何在场景中播放视频
       创建MediaTexture,命名为TVTexture,如果上面已经创建直接重命名就可以了
UE4学习笔记:如何在场景中播放视频
       打开TVTexture,将MediaPlayer属性值引用到VideoPlayer
UE4学习笔记:如何在场景中播放视频
       在内容浏览器中TVTexture资源上右键CreateMaterial创建材质,命名为TVMaterial
UE4学习笔记:如何在场景中播放视频
       打开关卡蓝图,创建一个MediaPlayer类型的变量,默认值设置为上面创建的VideoPlayer
UE4学习笔记:如何在场景中播放视频
       在关卡蓝图中添加空格按键键事件,蓝图代码如下
UE4学习笔记:如何在场景中播放视频
       OpenSource用于打开视频源,在Play之前至少调用一次,停止播放的函数为Close,还可以增加一个关闭视频功能
UE4学习笔记:如何在场景中播放视频
       在关卡中加入一个平面作为视频播放屏幕(电视机屏幕),调整位置大小和方向,完成以上步骤后运行,按下空格键控制视频的播放和暂停,退格键关闭视频
UE4学习笔记:如何在场景中播放视频
       MediaPlayer还有很多其他的函数用于控制视频的播放
UE4学习笔记:如何在场景中播放视频

播放视频流和图片序列等媒体文件与上面的步骤类似,可参考官方文档。