UE4的视频播放(Media Player)

该文详细介绍了如何在Unity3D中实现视频播放功能,包括设置声音大小、播放控制、进度条调整、播放速率、循环播放和镜像画面。此外,还讨论了显示播放时间、实时预览画面、显示与隐藏控制,以及画中画和全屏模式。同时,提到了通过RenderTarget调整视频清晰度的技术要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 视频播放Begining

首先将需要播放的视频拖入。

在这里插入图片描述
创建Media Player和Media Texture。

在这里插入图片描述
在这里插入图片描述
创建Material,将材质改为User Interface。

在这里插入图片描述

在这里插入图片描述
在UI界面,创建Image,将这个材质装入。

在这里插入图片描述
在人物Pawn界面添加Media Sound组件并将小电视拖入。

在这里插入图片描述
在对应UI界面实现对应播放逻辑即可完成播放。

在这里插入图片描述

2. Media Player可以调用的功能

2.1 设置声音大小

注意此处需调用Media Sound的函数,而不是小电视的。

在这里插入图片描述

2.2 设置播放与关闭

在这里插入图片描述

2.3 拖动进度条

注意:Seek调用太频繁会出现卡顿,不能实现高刷。

在这里插入图片描述
这里的时间可以使用GetTotalXXX转换成秒、毫秒等,用于进度条的计算。

在这里插入图片描述

2.4 设置播放速率

在这里插入图片描述

2.5 设置是否循环播放

在这里插入图片描述

2.6 设置镜像画面

将Image翻转就是镜像,即渲染的X改为-1即可。

在这里插入图片描述

3. 其它自己实现的功能

3.1 显示播放时间

播放时间实时并更新,在Event Tick中实现。

在这里插入图片描述
在这里插入图片描述

3.2 进度条显示播放画面

使用另一个一样的作为显示画面的容器,并添加到原视频进度条上。

在这里插入图片描述
在这里插入图片描述
在原视频中,当鼠标悬浮式使用Set Time by Event频繁调用,到达实时画面的效果。

在这里插入图片描述

在这里插入图片描述

3.3 显示与隐藏

  • Visable:有物理碰撞且可见
  • Collapsed:折叠,可能会改变原有布局
  • Hidden:隐藏,不会改变原有布局
  • Not Hit-Testable:可见,但没有点击物理碰撞
  • 注意:视频功能中有些使用Collapsed,如需要隐藏但不影响布局的碰撞盒子。Hidden,影响布局的盒子。Not Hit-Testable,如视频功能的显示实时播放画面,需要可见且不能有物理碰撞。

在这里插入图片描述
此处使用一个盒子,对所有相关显隐操作进行清除。

3.4 画中画与全屏

画中画和全屏相对比较简单,都使用同一个Media Mat就可达到同步,只需要传入需要同步的值就行。

在这里插入图片描述

3.5 视频清晰度

因为Render Target才能调整视频清晰度,而Media Player并不能因此,我们将Media Player不断画到Render Target上,就能调整视频清晰度了。
首先创建Render Target。

在这里插入图片描述
在这里插入图片描述
将原来的材质使用Draw Material to Render Target不断Draw到Render Target的材质上。

在这里插入图片描述
使用对应的Render Target材质即为对应的分辨率大小,调整分辨率方式为调整采样。

在这里插入图片描述

4. 最终效果

最终实现了个仿b站的视频播放UI。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

### 在 Unreal Engine 4 中集成和播放视频文件 要在 Unreal Engine 4 (UE4) 中实现视频播放功能,可以通过 Media Framework 来完成。Media Framework 是 UE4 提供的一套用于处理媒体文件的功能模块,支持多种视频格式的解码和播放[^3]。 以下是关于如何在 UE4 中集成并播放视频文件的关键步骤: #### 使用 MediaPlayerMediaTexture 进行视频播放 1. **启用插件** 首先,在编辑器中启用 `Media` 插件以及平台特定的媒体框架插件(如 Windows 平台下的 `Windows Media Framework`)。这可以在项目的插件菜单中找到并激活[^3]。 2. **创建 MediaPlayer 对象** 创建一个蓝图类或者 C++ 类来实例化 `MediaPlayer` 对象。此对象负责加载和控制媒体源的播放状态。通过调用 `OpenURL()` 方法指定要播放的视频文件路径或流地址[^3]。 ```cpp UMediaPlayer* MediaPlayer = NewObject<UMediaPlayer>(); FString VideoPath = TEXT("/Game/Videos/MyVideo.mp4"); MediaPlayer->OpenUrl(*VideoPath); ``` 3. **配置 MediaSource** 设置 `MediaSource` 属性指向目标视频资源的位置。如果视频存储于本地磁盘,则可以直接提供相对路径;如果是网络直播流,则需输入对应的 URL 地址[^3]。 4. **绑定到材质纹理节点** 将 `MediaTexture` 节点连接至场景中的静态网格物体或其他渲染表面。这样就可以把正在播放的画面映射显示出来[^3]。 5. **启动与停止播放逻辑** 利用事件图表定义触发条件以执行 Play/Pause/Stop 动作。例如当玩家按下某个按键时开启视频回放过程[^3]。 ```cpp if (MediaPlayer && !MediaPlayer->IsPlaying()) { MediaPlayer->Play(); } else { MediaPlayer->Pause(); } ``` 以上操作完成后即可成功实现在虚幻引擎四当中嵌入外部影片素材并且动态呈现给用户观看的效果[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值