UE4的视频播放(Media Player)

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。

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45617648/article/details/129792802