文章目录

  • 一、AVProVideo播视频插件
  • 二、制作过程
    • `重点总结`:
      • 第一阶段,建“播放UI”、“媒体播放器”。
      • 第二阶段,把媒体播放器拖给播放UI。
      • 第三阶段,设置媒体播放器,所播放服务器视频的URL。
    • `具体步骤`:
      • (1)因AVProVideo也是在UGUI的Canvas下播放,得先建立Canvas,然后在Canvas组件上,右键——>UI——>AVPro Video uGUI
      • (2)在Hierarchy层级视图空白处,右键——>AVPro Video——>Media Player,即建立媒体播放器
      • (3)把Media Player,拖给第1步建立的AVPro Video uGUI
      • (4)给上步建立的MediaPlayer,设置播放网址,依次设置如下
  • 三、发布

一、AVProVideo播视频插件

Unity版本 :Unity2020.3.21f1
AVProVido版本:AVPro Video 1.10.1.unitypackage
(AVProVido链接:https://pan.baidu.com/s/1gEbU1KMaRM8p9AjGHZJdLw?pwd=2022 提取码:2022)

二、制作过程

重点总结

第一阶段,建“播放UI”、“媒体播放器”。
第二阶段,把媒体播放器拖给播放UI。
第三阶段,设置媒体播放器,所播放服务器视频的URL。

具体步骤

准备:
导入AVProVideo1.10.1后,会有Bug

原因是与Unity版本不太适配——Bug显示与VR相关,点击控制台的报错,在VS中把相关代码注释掉或删掉,即可解决。
(注意,在注释代码的时候,它前后会有#开头的编辑器语句,要么保留完整的# #end组合,要么把这个组合完整的注释掉:因如果只注释掉开头的#语句,留着结束#end,#end处就会报错)
#开头的编辑器语句例子,如图

我这里注释掉后的代码,如下,以做参考

#if UNITY_5_4_OR_NEWER || (UNITY_5 && !UNITY_5_0 && !UNITY_5_1 && !UNITY_5_2 && !UNITY_5_3_0 && !UNITY_5_3_1 && !UNITY_5_3_2)#define UNITY_HAS_VRCLASS
#endifusing UnityEngine;//-----------------------------------------------------------------------------
// Copyright 2015-2018 RenderHeads Ltd.  All rights reserverd.
//-----------------------------------------------------------------------------namespace RenderHeads.Media.AVProVideo.Demos
{/// <summary>/// A demo for playing back 360 video on a mesh, handles rotation of the main camera/// Supports rotation by VR device, gyroscope or mouse/// </summary>public class SphereDemo : MonoBehaviour{[SerializeField]private bool _zeroCameraPosition = true;#pragma warning disable 0414    // suppress value not used warning[SerializeField]private bool _allowRecenter = false;[SerializeField]private bool _allowVrToggle = false;[SerializeField]private bool _lockPitch = false;#pragma warning restore 0414    // restore value not used warningprivate float _spinX;private float _spinY;private void Start(){#if UNITY_HAS_VRCLASS//if (UnityEngine.VR.VRDevice.isPresent)//{//  return;//}
#endifif (SystemInfo.supportsGyroscope){Input.gyro.enabled = true;this.transform.parent.Rotate(new Vector3(90f, 0f, 0f));}}private void OnDestroy(){if (SystemInfo.supportsGyroscope){Input.gyro.enabled = false;}}void Update(){#if UNITY_HAS_VRCLASS//if (UnityEngine.VR.VRDevice.isPresent)//{//  // Mouse click translates to gear VR touch to reset view//  if (_allowRecenter && (Input.GetMouseButtonDown(0) || Input.GetKeyDown(KeyCode.Space)))//   {//     UnityEngine.VR.InputTracking.Recenter();//  }
#if UNITY_EDITOR || UNITY_STANDALONE_WIN//if (_allowVrToggle && Input.GetKeyDown(KeyCode.V))//{//   UnityEngine.VR.VRSettings.enabled = !UnityEngine.VR.VRSettings.enabled;//}
#endif//}//else
#endif//{// if (SystemInfo.supportsGyroscope)// {//     // Invert the z and w of the gyro attitude//        this.transform.localRotation = new Quaternion(Input.gyro.attitude.x, Input.gyro.attitude.y, -Input.gyro.attitude.z, -Input.gyro.attitude.w);// }// // Also rotate from mouse / touch input//   else // {//     if (Input.GetMouseButton(0))//      {//         float h = 40.0f * -Input.GetAxis("Mouse X") * Time.deltaTime;//          float v = 0f;//            if (!_lockPitch)//          {//             v = 40.0f * Input.GetAxis("Mouse Y") * Time.deltaTime;//         }                       //          h = Mathf.Clamp(h, -0.5f, 0.5f);//         v = Mathf.Clamp(v, -0.5f, 0.5f);//         _spinX += h;//            _spinY += v;//        }//     if (!Mathf.Approximately(_spinX, 0f) || !Mathf.Approximately(_spinY, 0f))//     {//         this.transform.Rotate(Vector3.up, _spinX);//            this.transform.Rotate(Vector3.right, _spinY);//         _spinX = Mathf.MoveTowards(_spinX, 0f, 5f * Time.deltaTime);//         _spinY = Mathf.MoveTowards(_spinY, 0f, 5f * Time.deltaTime);//     }// }//}}void LateUpdate(){if (_zeroCameraPosition){Camera.main.transform.position = Vector3.zero;}}}
}
(1)因AVProVideo也是在UGUI的Canvas下播放,得先建立Canvas,然后在Canvas组件上,右键——>UI——>AVPro Video uGUI

(2)在Hierarchy层级视图空白处,右键——>AVPro Video——>Media Player,即建立媒体播放器

(3)把Media Player,拖给第1步建立的AVPro Video uGUI

(4)给上步建立的MediaPlayer,设置播放网址,依次设置如下

三、发布

发布到Android端如下(如果发布到IOS苹果端,注意MediaPlayer的Inspector视图,也是根据其中的报错对Player Settings进行设置)
1、注意下面两个图中的设置
图一、去除Vulkan

图二、改网络接入

2、关于部分机型,视频播放不了的问题
Unity使用AVProVideo安卓端无法播放http视频解决办法
注意:
(1)如果己方工程没有AndroidManifest.xml文件,需勾选Edit->Project Settings->Publishing Setting->Custom Main Manufest ,U3D 自动生成一个。
(2)里面第二个Xml文件,需自己创建——创建方法是:先建一个寻常的C#脚本,然后右键Show In Explorer,改文件后缀名为xml。

Unity播放服务器端视频 发布到Android移动端相关推荐

  1. Unity 高通AR发布到Android发生黑屏

    这两天在做Unity 高通AR发布到Android的时候发生黑屏现象 后来发觉是不调用摄像头而不是黑屏(所谓黑屏是因为摄像头背景就是黑色的) 最后发觉是高通的文件夹出现错误 重新复制之前备份的一个高通 ...

  2. Unity VRAR Unity播放全景视频及优化极点变形twist问题

    2016年是VR元年,这一年度多少少做了点东西,都是关于VR&AR的,虽然现在是冷冬期,个人认为前景还是有的,只不过会曲折前进,工业革命还分好几次呢,对吧! 好了,最近比较空闲,会整理一些VR ...

  3. Unity 播放本地视频

    这个我以前是想用Unity自带的PlayerVideo的播放,编辑器下成功了,手机上就不行,原因有几点.1,我把视频打成ab包了,这个貌似不得行,一旦打包就播不出来了,是因为你一旦打包,视频就会被压缩 ...

  4. 在我的S5pv210 wince6.0 上做个支持硬解的wince播放器,播放1080P视频堪比android

    作者:gooogleman@foxmail.com 以及P网友合作开发 Sate210 wince6.0 硬解播放器测试视频 http://v.youku.com/v_show/id_XNTIwNTk ...

  5. Android播放网络视频截图

    Android播放网络视频截图 最近博主遇到一个Android电视的开发项目,项目需要电视客户端播放服务器端视频,通过遥控器一键截图,并将截图云推送到手机客户端,于是博主就开始找度神去求助了,毕竟以前 ...

  6. Android之MediaPlayer播放网络视频的实现方法

    前段时间忙于工作,现在有时间来分享一下: 这篇文章主要介绍了Android的MediaPlayer播放网络视频的实现方法,是一个非常实用的功能,需要的朋友可以参考下 前面讲解了MediaPlayer播 ...

  7. Android提高第二十一篇之MediaPlayer播放网络视频

    本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 上次讲解了MediaPlayer播放网络音频,介绍了MediaPlayer关于网络音频的缓冲和进度条控制的方法 ...

  8. android 播放视频链接,如何通过Android视频播放器中的直接链接播放MP4视频?

    我正在制作一个 Android应用程序,我需要通过直接下载链接在Android默认本机视频播放器中播放mp4视频. 要打开Android视频播放器,我使用以下代码 Intent intent = ne ...

  9. 推荐一款很好的播放器:MXPlayer,可以播放4K视频

    推荐一款很好的播放器:MXPlayer,可以播放4K视频,有 Android 和 Windows 版: MAPlyaer:https://mxplayerdownload.co/ 或:https:// ...

  10. 集成Vitamio来播放网络视频(支持多种格式解码)

    集成Vitamio来播放网络视频(支持多种格式解码) 在android里面可能会用到播放网络视频,但是android SDK自带的播放视频并不能满足我们要求,因为支持的格式有限,有时只有声音没有头像. ...

最新文章

  1. 《图像处理实例》之 曲线之间距离求解
  2. 一个listMap里map其中的一个字段的值相同,如何判断这个字段相同,就把这个map的其他字段存入另一个map中...
  3. php常用快捷键,phpstorm常用快捷键
  4. 超干货 | 硅谷产品大师 Marty Cagan 70 分钟演讲2万字中译
  5. 七十一、Springboot整合MyBatis(注解版)
  6. 【最短路】SDUT3034--炸学校
  7. 【H.264/AVC视频编解码技术】序章【编码的前世今生】
  8. call,apply,bind的用法与区别
  9. 怎么在linux上修改mysql端口映射_如何在Linux中更改默认的MySQL / MariaDB端口
  10. 在WPF中最大化窗口并将WindowState设置为None的任务栏
  11. Java-java.util.concurrent.LinkedBlockingQueue
  12. Delphi+GDI
  13. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_4_方法引用_通过super引用父类的...
  14. matlab gaot工具箱安装详细说明
  15. 全网最详细解释Keil-MDK中Code、RO-data、RW-data、ZI-data的含义
  16. 表单下的botton如何禁止提交
  17. SATA 3.2协议 Error handing机制
  18. 百度地图动态修改图标
  19. negroni包和mux包的一点理解
  20. 有没有视频合并软件?合并视频这样做

热门文章

  1. python解二阶微分方程组_用Python求解一阶和二阶微分方程组
  2. oracle定时任务按照小时,ORACLE定时任务时间间隔设置
  3. 2004年考研数学一真题解析pdf
  4. mobi电子书中删除多余的空格
  5. 删除android电视软件下载,智能电视Root并删除预装
  6. 太恶心了!百度员工在内网分享“日本AV女优链接” 遭开除后,还有脸上诉.........
  7. Python在线编辑器推荐
  8. ”教你如何抓住短视频时代风口,进行流量红利变现
  9. web运维:跨域(NGINX跨域配置为例)
  10. 一款很好用的软还原卡