Actor播放视频

在4.20版本的UE4中,通过创建Movies文件夹、添加视频资源、建立FileMediaSource,然后创建MediaPlayer和MediaTexture,接着创建BP_VideoActor并添加Plane与MediaSound,设置MediaPlayer和FileMediaSource变量,最后在关卡蓝图中替换FileMediaSource即可实现Actor上视频的动态更换。

老规矩,先说版本: 4.20版本
我要做的是让一个Actor可以播放视频,并且可以随时更换自己想播放的视频。

一.准备视频资源

1. 在Content文件夹下创建一个Movies文件夹(注意文件夹名字不能用别的)
2.在该文件夹下添加一段视频,我选用的是.mp4格式的(看别的博客有的说只支持.avi格式,但是我.mp4也成功了,所以如果不成功可以换.avi试试)
3.在该文件夹下创建一个FileMediaSource(Media-FileMediaSource),打开进行编辑,FilePath选择刚才添加的视频

如果第一步的文件夹名字不是Movies,这时候就会有警示

添加视频界面

二.创建视频相关纹理等

1.创建一个MediaPlayer(Media-MediaPlayer),下边的选项打对勾,会创建一个对应的MediaTexture

创建MediaPlayer自动创建MediaTexture

<
### 实现Unreal Engine 3D UI中播放视频 为了在Unreal Engine的3D用户界面(UI)中集成并播放视频,通常会涉及到Media Framework模块的应用。当尝试在3D环境中显示视频时,可能会遇到特定版本下的兼容性问题,例如,在UE5预览版1中使用DirectX 12渲染路径下媒体纹理无法正常展示视频的情况[^3]。 #### 准备工作 确保项目启用了`Media`和`MediaAssets`插件。这可以通过编辑器中的插件管理工具来完成,找到这两个插件并启用它们。 #### 创建材质与纹理目标 对于要在3D UI上播放视频,首先需要创建一个Material(材质),该材质将链接到Texture Target(纹理目标)。此纹理目标作为桥梁,用于接收来自MediaPlayer组件解码后的每一帧图像数据。 ```cpp // 定义材质参数表达式以接受动态更新的纹理 UMaterialExpressionTextureObject* TextureParameter; ``` #### 添加MediaPlayer组件 接着向Actor蓝图或C++类中加入MediaPlayer组件实例化对象,并设置其属性指向要播放的多媒体文件源。 ```cpp U MediaPlayer *Player = NewObject<UMediaPlayer>(); if (!Player->OpenSource(FMediaSource("/Game/Movies/MyMovie"))) { UE_LOG(LogTemp, Warning, TEXT("Failed to open media source")); } ``` #### 连接至UI元素 为了让视频能够在指定的3D UI平面上呈现出来,需建立从MediaPlayer到上述所建材质之间的连接关系。具体操作是在材质内部添加一个名为`TextureSampleParameter2D`节点,并将其绑定到之前定义好的Texture Object Parameter上;随后调整平面网格体的材料引用为此自定义材质。 #### 控制视频播放逻辑 最后一步是控制视频的实际播放行为,比如启动、暂停或是循环播放等功能。这部分可通过调用MediaPlayer提供的API接口实现: ```cpp void StartPlayback() { Player->Play(); } void StopPlayback() { Player->Stop(); } ``` 以上过程描述了一个基本框架,实际应用过程中可能还需要处理更多细节,如同步音频流、响应不同平台差异等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值