本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!