本文共 1327 字,大约阅读时间需要 4 分钟。
这种方法只支持MP4,ogv,vp8,webm,mov,dv,m4v,mpg,mpeg格式的视频文件。
将视频画面保存在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; }}
将视频画面复制给所选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属性。
指定视频clip后播放是没有声音的,需要在这个RawImage上再添加一个Audio Source组件,不用修改任何属性,直接将组件赋值给VideoPlayer上的Audio Source属性即可播放视频中的声音。
判断当前帧数与总帧数是否相等
如果想让视频暂停,则在需要的时间点使用videoPlayer.Pause()。
视频总时长=总帧数/帧速率(如果是本地赋值的视频片段可以直接用VideoClip.length获取总时长
转载地址:http://kxyvf.baihongyu.com/