文章目录

  • 一、Video Player 参数
  • 二、通过代码使用 Video Player

​ Video Player 顾名思义是视频播放器的意思,它是 Unity 提供给我们用于播放视频的组件

​ 该视频播放器组件,可以在游戏中播放导入的视频剪辑文件

​ 添加 Video Player 组件:

  • 方法一:在 Hierarchy 窗口点击加号,选择 Video -> Video Player
  • 方法二:选择场景上任何一个对象,为其添加 Video Player 组件
  • 方法三:直接将视频文件拖入到 Hierarchy 窗口中

一、Video Player 参数

  1. Source:视频源

    • Video Clip:视频剪辑

      可以直接将视频剪辑拖入此处或者选择视频剪辑进行关联

    • URL:视频路径

      选择视频的路径,可以是远程视频路径,也可以之后通过代码直接关联视频资源路径

  2. Play On Awake:场景启动时就播放视频

    如果希望自己控制播放时机,请取消该选项

  3. Wait For First Frame:如果勾选该选项,Unity 将等待视频第一帧准备好显示

    如果取消勾选,可能会丢弃前几帧使视频时间与游戏保持同步

  4. Loop:是否循环播放

  5. Skip On Drop:是否允许视频播放器跳过帧以赶上当前时间

  6. Playback Speed:表示播放速度的乘数,0~10之间的值

    1 表示正常速度,如果数值为 2,则视频速度 ❌ 2,表示两倍速播放

  7. Render Mode:渲染方式

    • Camera Far Plane:在摄像机的远平面上渲染

      • Camera:定义接受视频的摄像机

      • Alpha:视频的全局透明度

      • 3D Layout:

        如果视频分为了左右双眼,设置为 Side by Side
        如果左右侧内容在视频中上下分部,设置为 Over Under

    • Camera Near Plane:在摄像机的近平面上渲染

    • Render Texture:将视频渲染到渲染纹理中

    • Material Override:通过游戏对象渲染器的材质将视频渲染到游戏对象的选定纹理属性中

    • API Only:不预先设置渲染到哪里,通过代码来设置视频渲染到哪里

      通过 Video Player 中的 texture 属性进行设置

  8. Aspect Ratio:宽高比设置

    • No Scaling:不使用缩放

    • Fit Vertically:垂直适应目标矩形

      必要时裁剪左侧和右侧或在每侧留下黑色区域,以保留原视频的宽高比

    • Fit Horizontally:水平适应目标矩形

      必要时裁剪顶部和底部或在顶或底留下黑色区域,以保留原视频的宽高比

    • Fit Inside:对原视频进行缩放而不必裁剪,但是可能会留黑边

    • Fit Outside:对原视频进行缩放,可能需要进行裁剪,但是不会留黑边

    • Stretch:在水平和垂直方向均进行缩放以适应目标矩形。不会保留源宽高比

  9. Audio Output Mode:如何输出视频源的音频

    • None:不播放音频

    • Audio Source:发送给指定的音频源对象,允许 Unity 的音频处理

    • Direct:直接绕过 Unity 音频处理,发送给音频输出硬件输出

      Mute —— 静音;Volume —— 音量。

    • API Only:通过代码将音频样本发送到关联的 AudioSampleProvider 听诊器

  10. Track Enabled:启用关联的音频轨道用于播放,必须在播放前设置

    比如:Track 0[en, 2 ch] 表示有一个音频轨道,语言是 en, 并且音频轨道有 2 个声道(2 ch),表示它是双声道音频轨道

二、通过代码使用 Video Player

using UnityEngine.Video; // 注意:使用VideoPlayer组件需要引用命名空间UnityEngine.Videopublic  RenderTexture texture;
public  VideoClip     clip;
private VideoPlayer   videoPlayer;
private bool          isOver = false;void Start() {// 1.将一个 VideoPlayer 附加到主摄像机。//   将 VideoPlayer 添加到摄像机对象时,//   它会自动瞄准摄像机背板,无需更改 videoPlayer.targetCamera。GameObject camera = GameObject.Find("Main Camera");videoPlayer = camera.AddComponent<VideoPlayer>();// 2.参数相关设置//   是否自动播放videoPlayer.playOnAwake = false;//   渲染模式videoPlayer.renderMode = VideoRenderMode.CameraFarPlane;// 设置目标 渲染贴图// videoPlayer.targetTexture = texture;// 设置目标摄像机// videoPlayer.targetCamera//   透明度videoPlayer.targetCameraAlpha = 0.5f;// videoPlayer.targetCamera3DLayout = Video3DLayout.OverUnder3D;//   视频源videoPlayer.source = VideoSource.VideoClip;videoPlayer.clip   = clip;// videoPlayer.source = VideoSource.Url;// videoPlayer.url = Application.streamingAssetsPath + "/Video.mp4";//   是否循环videoPlayer.isLooping = false;//   视频总时长print(videoPlayer.length); // 单位为s//   当前时长,播放了多久print(videoPlayer.time); // 单位为s//   总帧数print(videoPlayer.frameCount);//   当前帧print(videoPlayer.frame);// 3.方法相关//   播放、停止、暂停//   准备函数videoPlayer.Prepare();// 4.事件相关//   准备完成事件videoPlayer.prepareCompleted += (v) => {print("准备完成");isOver = true;};//   开始事件videoPlayer.started += (v) => { print("当执行player播放方法后 会调用的事件"); };//   结尾时调用事件videoPlayer.loopPointReached += (v) => { print("视频播放到结尾处时会调用的事件"); };
}// Update is called once per frame
void Update() {if (Input.GetKeyDown(KeyCode.Space) && isOver) {// 视频播放videoPlayer.Play();}if (Input.GetKeyDown(KeyCode.S) && isOver) {// 视频停止videoPlayer.Stop();}if (Input.GetKeyDown(KeyCode.P) && isOver) {// 视频暂停videoPlayer.Pause();}
}

2022-08-26 Unity视频播放3——VideoPlayer相关推荐

  1. 【学习日志】2022.08.26 C#单例模式 Tostring Utils

    知识提纲 C#属性 C#单例模式 0.自用超级简单式 namespace ConsoleApp2 {//工具类class Utils{private static Utils instance = n ...

  2. Unity 视频播放

    Unity 视频播放 前言 在Unity引擎做视频播放的方式有很多种,这里介绍两种.一种是使用RawImage组件的纹理进行视频播放,将视频每一帧的画面复制在RawImage的纹理贴图中,实现视频的播 ...

  3. 数学建模学习视频及资料集(2022.08.10)

    2021高中数学建模(应用)能力展示活动细则详解(上) 2021高中数学建模(应用)能力展示活动细则详解(上)_哔哩哔哩_bilibili 2021高中数学建模(应用)能力展示活动细则详解(下) 20 ...

  4. 小学奥数 7657 连乘积末尾0的个数-2022.01.26

    http://noi.openjudge.cn/math/7657/ /* 小学奥数 7657 连乘积末尾0的个数-2022.01.26 http://noi.openjudge.cn/math/76 ...

  5. H5在线CAD,网页CAD,MxDraw云图平台2022.08.24更新

    SDK开发包下载地址: MxDraw云图平台 2022.08.24更新_梦想CAD控件 1. 增加对像扩展数据功能 2. 增加CAD结合GIS使用功能 https://www.mxdraw3d.com ...

  6. vue 视频播放插件VideoPlayer

    vue 视频播放插件VideoPlayer 1.npm install vue-video-player --save 2.main.js引入 import VideoPlayer from 'vue ...

  7. English Learning - Day20 作业打卡 2022.12.26 周一

    English Learning - Day20 作业打卡 2022.12.26 周一 引言 一.给出如下短语的汉语释义 1. a burning house 2. an ag(e)ing popul ...

  8. Windows10 彻底关闭系统更新(2022.12.26更新)

    熊熊亲测有效,2022.12.26更新 一.服务 快捷键Win+R,输入"services.msc",打开"服务",在[常规]选项卡中停止服务并在"启 ...

  9. Hibiscus的脑机接口学习周报(2022/12/26~2022/1/1)

    2022/12/26(星期一) 在学习使用python mne库读取.set类型数据时,遇到了类似如下报错:buffer is too small (来源于Python读取.set格式的脑电数据出现b ...

  10. 八股文-- 2022.08.31

    途虎养车2022.08.31 在Java中,LinkedList类有而ArrayList类没有的方法是:removeLast()方法 LinkedList :底层基于双向链表实现,不支持高效的随机元素 ...

最新文章

  1. c#打开数据库连接池的工作机制_数据库连接池-tomcat-jdbc使用笔记
  2. svc android,在android中,如何使用 Svc WCF服务_android_开发99编程知识库
  3. 关于无法加载已创建的布局文件的问题的解决方案以及已布局在对应的R文件中未生成相应ID的问题的解决
  4. HoudahSpot查找多个文件教程:从名称列表中查找文件
  5. [转载]Hibernate 一对一 双向关联
  6. SoapUI安装教程,亲测可用
  7. 2018Web前端面试题及答案大全
  8. PHP实现时间轴函数(个性化时间)
  9. 【python】if __name__==‘__mian__‘ 如何理解,原理及作用
  10. 1113 小胖子的时钟【水题】
  11. JavaSE第04篇:Java基础语法之循环结构
  12. 抗饱和积分器 matlab,抗积分饱和
  13. 银行流失用户分析及预测模型
  14. ATTCK靶场系列(一)
  15. 不优雅地解决pytorch模型测试阶段显存溢出问题
  16. iOS开发 图片选择器、图片多选功能的实现
  17. excel从入门到忘记 学习心得分享(含百度网盘分享)
  18. rtx2060什么水平_老平台升级RTX2060,——性能,功耗,静音都一步到位!
  19. Robot Toolbox (一):Puma机器人仿真
  20. 从此以后提及你 无关风雨无关晴

热门文章

  1. 银行卡号与开户行对照文档
  2. [NOIP2017]图书管理员
  3. java 自定义函数_Java自定义函数调用方法解析
  4. oracle12 升级 01017,客户端登录Oracle 12.2服务器报ORA-01017的解惑
  5. 机器人教室外墙_智慧教室之机器人创客教室建设方案
  6. 入门大数据基础知识了解
  7. 使用pip下载安装离线依赖包whl文件
  8. 计算机基础17秋在线作业3,西南大学17秋1056《计算机基础》在线作业(参考资料)...
  9. 使用DOM4J解析大容量XML文件
  10. linux欺骗技术,显卡欺骗器状态检测及安装注意事项