Unity AVPro Video使用和WebGL播放视频流

2023-10-28

1.创建Media Player对象。在Hierarchy视图右击 Video->Media Player 或者选择菜单栏的GameObject菜单,然后选择 Video->Media Player。
创建Media Player

2.创建Display uGui对象。在Hierarchy视图右击 UI->Display uGui 或者选择菜单栏的Component菜单 AVPro Video->Display uGui。
创建Display uGui

3.给Display uGui指定Media Player组件
指定Media Player
4.Media Player组件
简单注解
在这里插入图片描述
使用最多的应该是Absolute Path Or URL和Relative To StreamingAssets Folder这俩个吧

5.指定视频资源或URL链接
指定视频资源
指定URL地址

MP4测试地址
  驯龙高手  http://vfx.mtime.cn/Video/2019/02/04/mp4/190204084208765161.mp4
《紧急救援》 http://vfx.mtime.cn/Video/2019/03/21/mp4/190321153853126488.mp4

m3u8测试地址
  计时器    http://playertest.longtailvideo.com/adaptive/bipbop/gear4/prog_index.m3u8

项目需求:webgl展示视频流(摄像头)
视频格式:原先给的视频流格式是flv,经过各种尝试,无法在webgl上播放,经过协商,提供了一份m3u8格式的视频流
实现原理:创建Media Player对象和创建Display uGui对象,代码控制播放哪一个视频

代码片段
using UnityEngine;
using UnityEngine.UI;
using RenderHeads.Media.AVProVideo;

    [SerializeField] private MediaPlayer mediaPlayer;           //加载视频流
    [SerializeField] private DisplayUGUI displayUGUI;           //显示视频
  
    void Awake()
    {
        Init();
    }
    
    private void Init()
    {
		if (mediaPlayer == null)
        {
            mediaPlayer = transform.Find("MediaPlayer")?.GetComponent<MediaPlayer>();
        }
        mediaPlayer.Events.AddListener(OnMediaPlayerEvent); //事件监听

        if (displayUGUI == null)
        {
            displayUGUI = 	transform.Find("Bg/VideoDisplay")?.GetComponent<DisplayUGUI>();
            if (displayUGUI.CurrentMediaPlayer == null)
            {
                displayUGUI.CurrentMediaPlayer = mediaPlayer;
            }
        }
	}
	
    private void OnMediaPlayerEvent(MediaPlayer arg0, MediaPlayerEvent.EventType arg1, ErrorCode arg2)
    {
        switch (arg1)
        {
            case MediaPlayerEvent.EventType.Started:    //开始播放的事件
            	//做一些其他操作,我这里的功能是视频还没加载完成,有一个转圈的UI,加载完成后,我把状态更改,隐藏该UI
                break;
        }
    }
    
//伪代码
//播放视频, 提供URL(自动开始)
mediaPlayer.OpenMedia(new MediaPath(url, MediaPathType.AbsolutePathOrURL));
//停止播放
mediaPlayer.Stop();
//暂停播放        
mediaPlayer.Pause();

注意:打包webgl平台,视频流格式是m3u8,设置
在这里插入图片描述
在打包出来的 index.html 中加入(我将hls.min.js放在了Build文件夹下)
在这里插入图片描述

hls.js和hls.min.js
提取码:7drh
AVPro 2版本插件
提取码:ujf3
仅供学习交流,请勿用于商业用途
AVPro 1版本插件
提取码:4460
仅供学习交流,请勿用于商业用途

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity AVPro Video使用和WebGL播放视频流 的相关文章

  • 您可以将原始 WebGL 纹理与 Three.js 一起使用吗

    我有一个相当复杂的架构 我在 Three JS 中完成大部分工作 但我也有一个特殊的渲染器 可以直接渲染到原始 WebGL 纹理 是否可以在 Three js 纹理 中使用此 WebGL 纹理 看起来 Three JS 纹理类只是图像 视频
  • 如何在 UWP 上的 Xamarin.Forms WebView 中启用 WebGL?

    我是 Xamarin Forms 新手 尝试在 Windows 10 x64 v1803 计算机上使用 UWP 使用 WebView 但我不知道如何让它与 WebGL 一起使用 使用 WebGL 的网站要么显示一条消息 您的视频卡不支持 W
  • WebGL 中的透明纹理行为

    环境 WebGL Chrome 当使用透明 png 作为模型纹理时 我有以下行为 图像 A 树将建筑物隐藏在其后面 我看到了世界框纹理 它也隐藏自己 后面的分支不可见 同时 图像 B 工作正常 窗口是透明的 我可以看到后面的内容 A B 两
  • 片段着色器 - 确定整个(单色)图像的最小/最大值并使用它们进行进一步的像素操作

    我想正常化单色图像像素以这种方式最小值为黑色 最大值为白色 并且两者之间的值按比例分布 目前我在 canvas 中分两步完成 但我相信在 WebGL 中应该更快 我可以想象通过片段着色器操纵颜色 但我找不到任何有效的方法来 1 确定图像的实
  • WebGL / Three.js - 移动相机时,纹理着色的粒子不规则地闪烁

    这是一个jsfiddle http jsfiddle net vko8hzzs 4 我将粒子在使用纹理着色时以及相机移动时 闪烁 的问题放在一起展示 更新 粒子上不应该发生动画或运动 如果当您在视口上单击并拖动并且粒子闪烁或完全改变颜色时
  • SketchUp 导出带有纹理的 obj - 如何

    Windows 7 64 位 SketchUp Make 13 0 4812 Goal 将 SketchUp skp 模型转换为 obj并使用 Three js 加载到 WebGL Problem sketchup 将模型导出到 obj具有
  • WebGL:如何使对象的一部分透明?

    我在浏览器中有一个 3D 球 现在我想在它上面挖一个洞以查看它的背面 我怎样才能使它成为可能 例如 我希望立方体的白色三角形部分可以是透明的 我的意思是我们可以看到立方体后面的背景 我尝试更改片段着色器中的 alpha 代码中的区域是正方形
  • Three.js 将对象附加到骨骼

    有什么方法可以将网格连接到骨骼上吗 例如 我加载动画 js 角色 并且想将武器附加到它的手上 可以对 Bone 和 Object3D 原型进行一些简单的修改 由于骨骼继承自 Object3D 因此它们可能有子级 因此我们可以轻松地将网格添加
  • 防止片段着色器中的循环展开

    我正在使用最新版本的 Chrome 和 Firefox 为 WebGL GLSL ES 1 0 编写一个片段着色器 并且编写了一个迭代算法 首先 我发现循环的长度是非常有限的 文档说它必须在编译时是可猜测的 这意味着它必须是一个常量或非常接
  • 如何在WebGL中实现类似隧道的动画? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何在WebGL中实现类似隧道的动画
  • OpenGL 和 WebGL 的 Alpha 渲染差异

    I m rendering the same scene using the same exact C code once to native OpenGL on windows and once using Emscripten to W
  • 有多少 WebGL 内存可用?当我用完时会发生什么?

    GPU 内存是有限的 通常比 JS 堆大小等更有限 诸如大量高分辨率图像之类的东西可能会填满内存 而且它是共享资源 因此其他应用程序可能会使用大量内存 在 OpenGL 中 我可以查询可用内存 WebGL 有没有办法做同样的事情 我怎样才能
  • 在 Three.js 中针对“子场景”进行光线投射

    因此 我正在使用 Three js 示例中的 webgl interactive cubes html 并且我有一个相对简单的问题 是否可以测试光线与对象的子对象的相交 例如 如果我做类似的事情 for var i 0 i lt 2000
  • WebGL:Android 上对 OES_texture_float 的支持下降

    有谁知道减少对 WebGL 扩展的支持是怎么回事OES texture float多年来在Android上 https webglstats com webgl extension OES texture float platforms 0
  • OpenGL:多个顶点的单个顶点属性?

    我有一个接受以下属性的顶点着色器 a posCoord 顶点位置 a texCoord 纹理坐标 传递给片段着色器 a alpha 透明度因子 传递给片段着色器 我正在渲染的对象都是 广告牌 一对直角三角形组成一个矩形 我正在使用一次调用g
  • 将 WebGL 应用程序部署为本机 iOS 或 Android 应用程序?

    有谁知道如何将 WebGL 应用程序部署为本机 iOS 或 Android 应用程序 商业中间件是可以接受的 但开放项目会更好 谢谢 作为 Joris 答案的延伸 这似乎是基于内森 德弗里斯的作品 http atnan com blog 2
  • WebGL2 FBO 深度附件值

    我只是尝试使用 WebGL2 渲染场景的深度值 如下所示 Texture depthTexture gl createTexture gl bindTexture gl TEXTURE 2D depthTexture gl texImage
  • 优化重叠矩形的绘制

    我有很多矩形 有些与其他矩形重叠 每个矩形都有一个绝对 z 顺序和一个colour 每个 矩形 实际上是粒子效果 网格或纹理的轴对齐边界框 并且可能是半透明的 但只要您不尝试剔除其他矩形后面的矩形 就更容易抽象地思考彩色矩形 所以我将在问题
  • 如何优化 Three.js 中多个 sphereGeometry 的渲染?

    我想优化 Three js 中 sphereGeometry 的渲染 因为它成为我的程序的瓶颈 javascript程序如下所示 var sphereThree for var idSphere 0 idSphere lt numSpher
  • glClipPlane - webGL 中有等效的吗?

    我有一个 3D 网格 是否有可能像这样呈现剖面图 剪辑 glClipPlane在OpenGL中 我正在使用 Three js r65 我添加的最新着色器是 片段着色器 uniform float time uniform vec2 reso

随机推荐

  • Keil开发环境安装教程

    一 环境安装包 百度网盘链接 https pan baidu com s 1MVlP7yWM mDu Rf xFPFQ 二 安装步骤 1 双击安装mdk515 exe 默认即可 可更改路径 2 安装完成后 用管理员的身份运行keil 3 在
  • JavaScript设置innerHTML时出现“未知的运行时错误”--我也遇上了

    在Ajax里经常会通过innerHTML来改变界面 这个比使用DOM要简单一些 比如 element innerHTML something 不过 在IE中 有时候会出现 未知的运行时错误 unknown runtime error 而在f
  • C语言在读取txt类型文件中的汉字字符串出现乱码的解决办法

    题目 C语言在读取txt类型文件中的汉字字符串出现乱码的解决办法 以下是本篇文章正文内容 欢迎朋友们进行指正 一起探讨 共同进步 来自考研路上的lwj 一 前言 当我们在练习文件这一章节时 因为需要从文件中读取数据 有很多数据是中文形式的
  • 【 Spring Boot + MyBatis Plus + Druid】

    1 1 配置版本 具体使用到的各配置版本信息如下 JAVA17 SpringBoot 3 0 5 MyBatis Plus 3 5 3 1 Druid 1 1 14 MySql 5 0 8 因为以前装的老版本的mysql 用的mysql c
  • K210、Openmv与串行总线舵机通信(基于micropython)舵机驱动板和舵机控制板代码

    最近博主在使用幻尔公司 串行总线舵机时 想使用k210控制 openmv和k210都是micropython编写的所以这个代码是通用的 由于官方没有相关例程 树莓派的版本是python版本代码 用不了 特此分享一下控制代码 主要调用函数 a
  • Spring的应用上下文

    Spring提供了多个应用上下文 以下三个必须掌握 因为最容易遇到 1 ClassPathXmlApplicationContext 从classpath处获取xml文件来加载一个上下文 2 ClassPathXmlApplicationC
  • Java学生管理系统(简单版)

    步骤 A 定义学生类 B 学生管理系统的主界面的代码编写 C 学生管理系统的查看所有学生的代码编写 D 学生管理系统的添加学生的代码编写 E 学生管理系统的删除学生的代码编写 F 学生管理系统的修改学生的代码编写 A 定义学生类 Stude
  • HTML表格标签

    标签 与 标签的关系 是互相包裹的关系 或者说 里外嵌套的关系 快捷写法 p gt img 表格 由 table 标签来定义 每个表格均有若干行 由 tr 标签定义 每行被分割为若干单元格 由 td 标签定义 字母 td 指表格数据 tab
  • PHP实现AES-128-CBC加密+base64_encode

    AES加密 public function encrypt input 传false相当于base64 encode 编码了一次 encode base64 encode openssl encrypt input AES 128 CBC
  • SSH反向代理使用

    SSH反向代理 先说说什么是代理 源服务器由于各种原因无法访问目标服务器提供的服务 但是存在一个agent服务器 源服务器可以访问它 它可以访问目标服务器 那么源服务器的消息发给他 它在把请求转发给目标服务器 就间接的实现了源服务器访问目标
  • 进程(process)、线程(thread)、协程 (Coroutine) 的区别

    说到协程 Coroutine 我们必须提到两个名称相似的东西 在操作系统 os 级别 有进程 process 和线程 thread 两个 仅从我们常见的讲 实际的 东西 不说概念是因为这两个家伙的确不仅仅是概念 而是实际存在的 os的代码管
  • Short与Integer互转

    int 是4字节 short 是2字节的 如果将int Integer 转成short Short 那么必须强制转换 否则会报编译异常 但是 当int Integer 是一个final时 可以直接转换 不必强转 如 short t 1 正确
  • 【力扣1462】课程表(拓扑排序+bitset优化到O(n))

    题目描述 你总共需要上 numCourses 门课 课程编号依次为 0 到 numCourses 1 你会得到一个数组 prerequisite 其中 prerequisites i ai bi 表示如果你想选 bi 课程 你 必须 先选
  • android虚拟机启动不了,android虚拟机adb不能启动情况汇总

    在开启android虚拟机的时候 可能会遇到adb不能启动的问题 大概有以下几下情况 1 报错 BUILD FAILED D workspace ganji build xml 144 The following error occurre
  • 底量超顶量超级大黑马指标源码_底量超顶量超级大黑马指标源码

    主力买力度 LARGEINTRDVOL 100 VOL COLORRED 主力卖力度 LARGEOUTTRDVOL 100 VOL COLORGREEN 超B L2 VOL 0 0 VOL CAPITAL 大B L2 VOL 1 0 VOL
  • linux服务器高并发的极限和瓶颈

    最大并发数探究 Fancylee 2022 03 30 并发数 QPS 并发数 系统中同时存在的请求 同时处理中 QPS query per second 每秒的访问数 如何理解 将整个系统比喻成一个超市 QPS在超市门口测得的每秒钟有多少
  • U盘重装系统后可能遇到的问题

    一 重装系统 具体流程安装参考百度盘的使用优启通进行安装 安装完系统后可能会出现如下现象 一般台式机比笔记本简单 因为台式机不存在外围设备 例如触控板等 1 自己的优启通的万能驱动可能不具有相应的硬件驱动 在安装完系统后会提示 未找到相应的
  • 使用Hyperledger Composer将业务网络部署到单个组织的Hyperledger Fabric区块链上

    转载请标明出处 http blog csdn net qq 27818541 article details 78727076 本文出自 BigManing的博客 前言 先前准备 1先满足下列环境要求 2安装Hyperledger Comp
  • 让你的代码变的更加健壮(Making your C++ code robust)

    Making your C code robust Introduction 在实际的项目中 当项目的代码量不断增加的时候 你会发现越来越难管理和跟踪其各个组件 如其不善 很容易就引入BUG 因此 我们应该掌握一些能让我们程序更加健壮的方法
  • Unity AVPro Video使用和WebGL播放视频流

    1 创建Media Player对象 在Hierarchy视图右击 Video gt Media Player 或者选择菜单栏的GameObject菜单 然后选择 Video gt Media Player 2 创建Display uGui