Unity VideoPlayer的使用

Unity5.6之前在移动端播放视频都用插件avpro,easy movie等等,在5.6,官方出了一个Videoplayer,可在pc、移动端播放视频,下面我们介绍一下具体的使用方法:
这里写图片描述
videoPlayer分为两种播放模型,一种是本地播放(video clip),一种是网络端播放(url),
下面是一些比较大众化的设置:

  • Play On Awake:脚本载入时自动播放。
  • Wait For First Frame:决定是否在第一帧加载完成后才播放,只有在Play On Awake被勾选是才有效。可以防止视频最前几帧被跳过。(使用过程中发现勾选后视频无法自动播放,原因不明)
  • Loop:循环。
  • Playback Speed:播放速度。

这里写图片描述

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

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

  • Render Texture:将视频画面保存在Render Texture上,以供物体或者RawImage使用,可以用来做基于UGUI的播放器。
    这里写图片描述

  • Material Override:将视频画面复制给所选Render的Material。需要选择具有Render组件的物体,可以选择赋值的材质属性。可制作360全景视频和VR视频。
    这里写图片描述

  • Api Only: 待研究。

脚本控制(需引用UnityEngine.Video):
VideoPlayer的脚本控制与AudioSource相似,有常规的Play,Pause,Stop方法,也有用于进度控制的time,isPlaying,isLooping,frame,frameCount等属性。
VideoPlayer可以使用一系列事件来监听播放的各个动作:

  • errorReceived: 错误监听到时被执行。

  • frameDropped :有丢帧发生时被执行。

  • frameReady :新的一帧准备好时被执行。

  • loopPointReached :播放结束或播放到循环的点时被执行。

  • prepareCompleted :视频准备完成时被执行。

  • seekCompleted :查询帧操作完成时被执行。

  • started:在Play方法调用之后立刻调用。

如果我们现在想知道视频的长度:本地端可以直接点出来videoplayer.clip.length,并且可以得到当前播放的长度:videoplayer.time;
如果我们播放的是网络端的视频,是没有办法直接获取视频总长度的,不过我们可以自己计算,视频总长度=videoplayer.frameCount / source.frameRate;即总长度的帧除以速率则可以得到总时间

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值