Unity中使用ViedoPlayer操作视频文件
发布日期:2021-06-30 19:59:15 浏览次数:2 分类:技术文章

本文共 1327 字,大约阅读时间需要 4 分钟。

这种方法只支持MP4,ogv,vp8,webm,mov,dv,m4v,mpg,mpeg格式的视频文件。

一:将视频显示在UI上

将视频画面保存在Render Texture上,可以用来做基于UGUI的播放器。

1.在面板中新建一个RawImage,并添加ViedoPlayer组件。

2.用代码实现将ViedoPlayer的贴图赋给RawImage上(必须用代码实现)

using UnityEngine;using UnityEngine.UI;using UnityEngine.Video;public class VideoController : MonoBehaviour{    private RawImage rawImage;//rawImage组件    private VideoPlayer videoPlayer;//视频播放组件    private void Start()    {        rawImage = GetComponent
(); videoPlayer = GetComponent
(); } private void Update() { rawImage.texture = videoPlayer.texture; }}

二:将视频显示在3D物体上

将视频画面复制给所选Render的Material。需要选择具有Render组件的物体,可以选择赋值的材质属性。可制作360全景视频和VR视频。

1.新建一个Plane,并添加ViedoPlayer组件。

2.将渲染模式改为Material Override,把Plane的Mesh Renderer组件赋给Video Player的Renderer属性。


三:将视频渲染到相机上

Camera Far Plane:基于摄像机的渲染,渲染在摄像机的远平面上,需要设置用于渲染的摄像机,同时可以修改alpha通道的值做透明效果,可用于背景播放器。

Camera Near Plane:基于摄像机的渲染,渲染在摄像机的近平面上,需要设置用于渲染的摄像机,同时可以修改alpha通道的值做透明效果,可用作前景播放器。

1.新建一个空物体,并添加ViedoPlayer组件。

2.2.将渲染模式改为Camera Far Plane,把Plane的主相机上的Camera组件赋给Video Player的Camera属性。


四:使用VideoPlayer播放声音

指定视频clip后播放是没有声音的,需要在这个RawImage上再添加一个Audio Source组件,不用修改任何属性,直接将组件赋值给VideoPlayer上的Audio Source属性即可播放视频中的声音。


五:判断视频播放完成

判断当前帧数与总帧数是否相等


六:暂停视频

如果想让视频暂停,则在需要的时间点使用videoPlayer.Pause()。


七:获取视频总时长

视频总时长=总帧数/帧速率(如果是本地赋值的视频片段可以直接用VideoClip.length获取总时长

转载地址:https://liuhaowen.blog.csdn.net/article/details/89465221 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C#中的的输入与输出
下一篇:游戏UI框架——通过Json信息去加载UI面板

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月17日 23时27分31秒