Unity 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再创建哦~

这时 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的功能介绍

最后再贴一张符华 ~
视频来自B站 仅供视频介绍

在 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端正常播放,在移动端播放卡顿
    可能原因及解决方法:
    原因未知,可能因版本兼容问题导致。 将原版本插件彻底删除,导入最新版本插件。
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值