Unity AVProVideo插件介绍 ——干货系类

  • 案例链接 项目包含插件
  • AVProVideo 能完成哪些功能?
    • 如何去创建一个 AVProVideo 播放器
    • 平面UI视频播放案例
    • 在 3D的对象上 播放视频
    • MediaPlayer的功能介绍
      • MediaPlayer的常见问题

案例链接 项目包含插件

码云链接 点我立即跳转

AVProVideo 能完成哪些功能?

  1. 将视频渲染在3D物体上
  2. WebGL播放视频
  3. Unity播放PC端和安卓端文件夹内的视频(Mac、IOS、tvOS、Windows Phone、UWP、PS4平台
  4. 输出播放视频的序列帧
  5. 360度圆形/方形环绕视频
  6. 180度环绕视频(一半的世界看视频,另一半没有)
  7. 透明视频(类似AR蝴蝶)

如何去创建一个 AVProVideo 播放器

在Hierarchy面板空白区右键 选择创建一个Media Player , 这个是重点 它将是我们视频播放的控制关键类

平面UI视频播放案例

右键创建一个Canvas 默认的就好了

额外补充一点小知识:
它会附带着创建了一个 EventSystem 对象 这小伙是负责监听事件的 如果你需要 加入一些 Button 等 按钮事件
鼠标事件这类的 这小伙就派的上用场了 一些新手的项目 按钮失效等原因 可能是由于EventSystem被误删了 所以
小伙伴们要检查下你的场景是否存在 一个 EventSystem 哦~

然后右键选择Canvas 创建一个 AVPro Video uGUI 对象

一定要选择Canvas再创建哦~

这时 Canvas 下生成一个 AVPro Video的对象 没错 它就是你刚创建的 AVPro Video uGUI 对象 只是名字少了一个 uGUI

选择它你可以看到一个 Display uGUI的组件

将我们刚刚创建的MediaPlayer 拖入 Display uGUI组件上的 Media Player对象上 讲究门当户对

然后点击这里

选择这个图形 让他相对于屏幕边缘的偏移

将 RectTransform的 Left,Top,Right,Bottom 都重置为0 这样 我们的窗口有多大 视频就多大的宽高 是不是很简单

现在 我们还需要创建一个Camera 对象 来拍摄这些显示对象 来显示在我们的屏幕上 右键创建Camera 什么都不要改动就行了

终于到了 最后一个 设置视频路径的阶段了 播放视频 你还得准备一个视频 巧妇难为无米之炊~
选择开始创建的第一个对象 MediaPlayer 把焦点 放在 SourePath 和

Source Path 相当于 你的省份 或者 市区 然后底下的编辑框 就是你的详细地址 和 点外卖 买快递的道理一样

这里 我们选择 Relative To Streaming Assets Folder

它是相对于 StreamingAssets 文件目录地址的 这个文件目录 没有的同学 可以创建一个 Unity会自动识别的

扩展一个小的知识点
StreamingAssets 目录下 是可以在打包后外部修改的 一般热更的资源文件都会放在这个文件目录下

然后 在下面的编辑框中输入你的视频地址后缀要带上哦

然后 就可以运行我们的项目了 最终效果展现

关于 Media Player 的参数 包括 Source Path路径的其它选项
请看 本篇博客的 MediaPlayer的功能介绍

最后再贴一张符华 ~

在 3D的对象上 播放视频

直接看这个标题的同学 推荐先补习下 上面 平面UI视频播放案例 标题

你新建的场景 大概是这样的 一个Main Camera 和一个 平行光

… 传不上图了 (上限了)。。 大家自行脑补


  1. 新建一个材质 shader 选择 AVProVideo / Lit / Diffuse( texture + color … )
  2. 在Hierarchy面板中 右键创建一个 Media Player 对象
  3. 给对象 新建一个组件 Apply To Material 组件
  4. 然后 将刚新建的材质 拖入 Apply to Material 组件上的 Material属性中
  5. 将 MediaPlayer 对象 自身拖入 Apply to Material 组件上的 Media属性上
  6. 新建一个 Cube 然后调整相机对准它
  7. 将 刚创建的材质 拖给 Cube
  8. 在 Source Path上选择 Relative To Streaming Assets Folder选项
  9. 在 Source Path选项下的地址栏 写如 test.mp4 根据视频格式命名
  10. 在 Unity Project面板出 找到 StreamingAssets 文件夹 没有加自己新建一个 然后 拖入你的视频文件 改名123.mp4 如果是其它格式比如 123.avi
    10.运行项目 大功告成

扩展下 你可以创建多个Cube ( 可以是其它形状)
将创建的的 视频材质 拖给 Cube 这些Cube也能播放视频

其它案例 在本文章中 搜索 案例链接 项目包含插件 找到 案例下载链接

MediaPlayer的功能介绍

基本属性

方法名 参数 功能
Play() 播放视频
Stop() 停止视频播放
.Control.Rewind() 重新播放视频
.Control.SetVolume(fload a) 设置音量大小
.Info.GetDurationMs() 返回视频长度
m_AutoOpen 是否自动加载
m_AutoStart 是否在加载完毕后自动播放
m_Loop 是否循环播放
****

Events 事件监听

Events是一个MediaPlayerEvent属性,继承了UnityEvent类,使用起来跟UGUI的Button控件的event类似,不同的是我们提供的方法需要有三个参数,MediaPlayer、MediaPlayerEvent.EventType和ErrorCode。其中EventType是播放器的一些状态,有如下几种

***MetaDataReady:视频数据准备完成 *** ReadyToPlay:视频加载完成,准备播放
***Started:视频开始播放 ***
***FirstFrameReady:第一帧渲染完成 *** FinishedPlaying:非循环播放的视频播放完毕 三个参数都需声明,但只需要对EventType进行判断,其余两个变量是情况使用。

public void OnVideoEvent(MediaPlayer mp, MediaPlayerEvent.EventType et, ErrorCode er){ switch (et) { case MediaPlayerEvent.EventType.ReadyToPlay: Debug.Log("ReadyToPlay");break;case MediaPlayerEvent.EventType.FirstFrameReady:Debug.Log("First frame ready");break;case MediaPlayerEvent.EventType.FinishedPlaying: Debug.Log("Finished"); break; }
}

其他设置

Media Properties:贴图的过滤、循环模式和Aniso level的设置,音频的立体声设置等。
Global Settings显示当前的开发平台,可以设置是否受TimeScale影响。 Preview:视频播放时可以查看播放情况,包括拖动进度,重播,显示Alpha通道,查看当前帧的贴图,保存当前帧贴图等。 PlatForm
Overrides:可以重写相应平台播放的视频路径等。 About:插件的相关信息,可以点击这一项中的按钮快捷跳转到开发者的网

MediaPlayer的常见问题

  • 在PC端正常播放,在移动端播放黑屏
    可能原因及解决方法:
    1,参数抗锯齿,图片压缩比例,画质等太高,导致移动端带不动。 降低参数设置;
    2,无故在移动端不能播放。 将插件重新导入。
  • 在PC端正常播放,在移动端播放卡顿
    可能原因及解决方法:
    原因未知,可能因版本兼容问题导致。 将原版本插件彻底删除,导入最新版本插件。

Unity MediaPlayer相关推荐

  1. audio unity 加速_浅谈Unity中Android、iOS音频延迟

    在Unity上面做音游,当在移动端实机运行起来,会发现,音频的发出会有一定的延迟,无论是长音效还是短音效,Unity内置的Audio内部使用的是FMOD,有以下手段改善 通过设置稍微改善其延迟的问题 ...

  2. Unity 视频播放

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

  3. unity rtsp 视频渲染(一)

    unity unity 可以说是一个不错的工具,建立三维的场景非常方便,下面我们建立一个三维的场景,并且在三维的场景中和场景外分别建立系统去播放视频.所谓场景内就是在三维中播放视频,场景外就是在三维场 ...

  4. [Unity]腾讯SDK踩坑之路(2)--配置Xcode工程(MSDK和米大师配置代码冲突)

    前不久接完MSDK,又花了几天时间改之前的打包工具和MSDK的一些代码,主要是这边有骚操作,需要不带SDK的包和带SDK的包,还有很多杂七杂八的包.然后顺带着打了个iOS测试包,检测SDK有没有接好. ...

  5. Unity Android平台 视频播放

    1.Unity版本:2018.1.1f 2.AVPro版本:AVPro Video 1.9.4 一.VideoPlayer VideoRawImage参数设置如图: 视频Texture大小设置如图: ...

  6. 基于VLC的Unity视频播放器(二)

    using Net.Media; using System; using System.IO; using System.Runtime.InteropServices; using UnityEng ...

  7. Unity开发展厅中控系统

    文章目录 前言 一.硬件环境 二.整体构造 1.灯光控制模块 2.主中控模块 3.电脑主机的开关机控制 4.控制电视机的开关 前言 记录自己独自完成的一个完整的展厅中控系统.整体实现思路:灯光线路接上 ...

  8. 多媒体制作中Unity中使用AVProVideo播放视频播放完成后自动收回

    之前使用Unity自带的VideoPlayer组件,发现win10支持很好,win7播放不流畅,现在使用AVProVideo插件. 1.在UI上播放,首先在Canvas里面Creat一个AVPro V ...

  9. Unity AVPro video 开始播放,播放完成事件监听

    代码播放: 低版本的路径播放api 不是这个  2.2.4 AVPro Video - Core Edition (核心版) bool isOpening = mediaPlayer.OpenMedi ...

最新文章

  1. etcd 笔记(08)— 基于 etcd 实现分布式锁
  2. proto文件支持继承吗_搞懂 Javascript中this 指向及继承原理
  3. python大数据分析实例-用Python整合的大数据分析实例
  4. 洛谷 - P1886 滑动窗口(单调队列/线段树)
  5. 自动补足算法是什么_如何自定义Shell(Fish版)的自动补全规则?
  6. canal 历史数据如何处理_MySQL日志解析工具Canal的使用
  7. VMware NSX系列教程-部署NSX Manager(转)
  8. 基于visual Studio2013解决面试题之1109全排列
  9. 再学Android之屏幕适配
  10. 寒冬中的一次优雅起舞
  11. include vdimgck.php,织梦后台升级后验证码登录一直显示错误的解决方法
  12. ListView,GridView以及ScrollView上拉下拉控件源码以及Demo发布啦
  13. Pano2VR制作全景图子菜单导航
  14. xmr-stak-cpu 安装及使用
  15. wifi信号正常,电脑插入网线之后,却显示“未识别网络”,
  16. 劳务派遣人员是否有加班费
  17. em表示什么长度单位_css中pt、px、em、ex、in等这类长度单位详细说明
  18. 关于Docker,你要知道的都在这了
  19. Android课程设计倒计时app,999倒计时计时器课程设计.docx
  20. 32 位 ARM® Cortex®-M0+内核 单片机

热门文章

  1. 修改GL-iNet路由器的reset键功能
  2. python-Computing with Strings课后题
  3. 什么是IMEI / MEID?他们有什么不同?
  4. 十级龙王间的决斗(四刷) kkmd66
  5. 日常用语--警告/劝解
  6. 打开EXCEL总提示 您尝试打开的文件*.xls格式与文件扩展名指定的格式不相符
  7. Unity快速入门教程-详解预制体(Prefab)及其实例化Instantiate
  8. python contains魔法方法_Python魔法方法详解
  9. webstorm ps
  10. 数据分析学习:数据分析学习步骤有哪些