前言:

本篇文章给大家介绍下的是Unity VR开发中全景视频播放方案,最近在做一个Unity 3D的视频类游戏,由于要应用到VR设备里面,所以需要播放的是全景视频,而非普通的平面视频。

方案列举

一.Unity内带的MovieTexture:

在Unity引擎内部自带的能够满足全景播放视频的组件是MovieTexture,而且使用MovieTexture播放全景视频时,效果非常好,而且操作相对方便。但是,movietexture只能播放OGG和OVG,而且质量比较低.如果要转成高质量的视频,文件尺寸比较大。

使用方法:

1.在当前场景中新建一个3D的Sphere球体,将主相机的位置在球体中心点处:

2.将.ogv或者.ogg的视频文件放到Resources目录或者其子目录下,这里我放在Resources/Videos目录下,通过以下代码来获取视频资源:

//不必带后缀名

MovieTexture tex = Resources.Load("Videos/war_video");

3.获取Sphere对象上的Renderer组件,并将视频载入得到的movTexture纹理,传递给Renderer的material.mainTexture属性,并设置视频的纹理的播放模式:

//设置当前对象的主纹理为电影纹理

_parenTrans.GetComponent().material.mainTexture = movTexture;

//设置电影纹理播放模式为循环

movTexture.loop = true;

以上步骤我们已经完成了视频的加入已经播放前的所有准备,那么接下来我们要做的就是开始播放、暂停和停止视频等操作,其实都很简单,分别调用MovieTexture的接口即可:

//开始播放

movTexture.Play();

//暂停播放

movTexture.Pause();

//停止播放

movTexture.Stop();

但是,这样播放视频的效果就是音频没有在视频播放的同时播放出来,那么我们就需要用代码控制音频的操作。

4.我们知道在Unity中播放音频有两个必备的组件Audio Listener和Audio Source,缺一不可,在主相机中默认绑定了AudioListener组件,我们需要手动添加Audio Source组件:

此时我们需要获取主相机中的Audio Source组件,并为其clip属性赋值:

//获取AudioSounrce组件

AudioSource MainCameraAudioSource = Camera.main.GetComponent(typeof(AudioSource)) as AudioSource;

//获取视频的音频文件并为AudioSource的clip属性赋值

MainCameraAudioSource.clip = movTexture.audioClip;

音频播放控制的接口与视频基本一致:

//开始播放

MainCameraAudioSource.Play();

//暂停播放

MainCameraAudioSource.Pause();

//停止播放

MainCameraAudioSource.Stop();

5.运行时,查看结果可以发现视频被赋值到材质球中作为纹理:

6.查看相机投射出来的结果如下,通过旋转相机的Y轴的角度,可以360度地观看视频,这就是全场景视频播放的一个过程:

对比原来的全景视频,在普通播放器中扭曲的全景视频,在这里就像一个封闭的3D的空间,具有很强的代入感:

看起来效果也还不错,但是就在要打包到Android平台上进行测试时,发现打包报错,查询资料才发现,MovieTexture不支持Android平台的使用。

二、Unity内带的移动平台视频接口Handheld:

Unity提供的支持移动设备上播放视频的接口,只有:

Handheld.PlayFullScreenMovie ("StarWars.mp4", Color.black, FullScreenMovieControlMode.CancelOnInput);

接口非常简单,但是可操作性非常差,几乎达不到我们想要的结果,而且也只支持全屏的普通视频的播放。

三、其他选择:

既然Unity内带的组件无法满足设计的需求,那么我们只有两个选择,一是自己写实现接口,二是寻找别人写好的第三方的插件。假如你的技术够牛逼,第一种方法是不错的选择,对自己也是一种提升,但是非常耗时,对于要快速开发产品的IT行业,显然第二种方法更为可行。

经过了长时间的搜索,我找到了2个预选方案:Vuforia video playback和EasyMovieTexture。

unity android全景视频播放,Unity VR——全景视频播放方案相关推荐

  1. 全景看房vr全景展示,获得360度全景式视角实时交互体验

    当在马路边收到地产广告传单,相信大部分人会直接无视或者扔掉,相比地产商付出大量的物料和人力成本来说,收效甚微,难以产生高收益.VR全景沉浸式看房体验以全新的体验式选房购房,打造差异化的服务体验,有效截 ...

  2. 什么是全景漫游,VR全景漫游系统功能有哪些?

    VR全景漫游是基于全景图像的真实场景虚拟现实技术,是利用单反/全景相机等摄影器材拍摄对真正场景的直接拍摄捕获,经过特定软件的拼合处理,最终实现360/720度全景立体图像/视频.用户可以自用控制VR全 ...

  3. VR全景展示,VR全景平台,助理全景展示新模式

    引言: VR全景展示是一种新型的展示方式,它利用虚拟现实技术和全景拍摄技术,使参观者可以身临其境地进入虚拟展览空间.这种展示方式不仅能够提供更加沉浸式的参观体验,还可以解决传统展览所面临的时间和地域限 ...

  4. Unity Android 之 在 Unity 中直接调用打开其他应用apk的方法实现

    Unity Android 之 在 Unity 中直接调用打开其他应用apk的方法实现 目录 Unity Android 之 在 Unity 中直接调用打开其他应用apk的方法实现 一.简单介绍 二. ...

  5. VR全景说:VR全景看房新体验?如何玩儿转VR房产

    近年来,新型技术可谓是层出不穷(VR全景.AI.大数据等),其中最受人们期待,也大有发展前景的就数VR技术了,为什么这么说呢? 因为VR在经历了2016年的高热度后,VR种类更是层出不穷,如VR游戏. ...

  6. VR全景乡村,VR全景,身临其境,感受自然

    随着科技的不断发展,人们对于旅游体验的需求也在不断提升.而传统的旅游方式,虽然能够让人们亲身感受到自然风光和人文景观的美丽,但却难以完全满足人们对于旅游的多元化需求.而VR全景乡村这种全新的乡村旅游体 ...

  7. 什么是VR全景技术,VR全景技术应用有哪些?

    2021年,VR全景技术相关应用正在以全新形式出现在大众视野之中.现在VR看房,VR全景看车,VR导航,VR旅游越来越普遍,大众对VR全景的包容度在不断提升,并且企业对VR全景技术应用也更加依赖. V ...

  8. VR全景的发展,VR全景加盟-VR全景智慧城市

    VR全景技术引领传统行业走向变革时代,传统行业开始寻求转型,争取不被这个时代所淘汰.做出适当的改变,也是势在必行. VR,虚拟现实(VirtualReality),简称VR技术,也称人工环境,是利用电 ...

  9. VR全景门店,VR全景带领业变革新模式

    随着科技的日新月异,数字化时代的零售业正在经历翻天覆地的变革.越来越多的商家开始关注虚拟现实(VR)技术在门店营销中的应用,以求在激烈的市场竞争中脱颖而出.VR全景门店作为一种新型的零售形态,以其沉浸 ...

  10. Android开发中Google VR全景的实现

    VR在现在生活中已经随处可见,在移动端上的应用更是屡见不鲜,在android 开发中VR更是应用在多个领域,汽车.家装.景区等,下面我就使用google的vr-sdk简单实现全景: 1.效果图如下: ...

最新文章

  1. TimeUnit 使用
  2. 2016年3月26日作业
  3. 提升网站竞争力从这三方面着手努力!
  4. iOS学习笔记---oc语言第八天
  5. python利用自动识别写模块_序章:资料预处理(python3.6 可用fortran unformatted sequencial data读取模块)...
  6. 【链接】 一篇很好的有关卡特兰数的博文
  7. devops流程工具_您的DevOps工作流程依赖哪些工具?
  8. android自定义键盘小数点键,android实现 自定义键盘 keydemo
  9. 【Python实现】运输问题的表上作业法(二):利用位势法判断当前解的最优性
  10. 实名认证 芝麻认证 人脸识别 集成
  11. 用 MeGUI 压制 DVDrip 入门
  12. 商户订单信息语音通知功能如何实现?
  13. setBounds(left, top, right, bottom)详解
  14. 深入了解机器学习(Descending into ML):线性回归
  15. AE正确释放打开资源
  16. android camera噪点,拍照时总是有很多噪点怎么办?方法很简单但你还真不知道
  17. JFreeChart的正确使用列子
  18. 深度linux 修复命令,修复启动
  19. mysql 围栏_使用纬度,经度和半径在PHP和MySQL中进行地理围栏
  20. android 海拔高度_Android:如何获取准确的海拔高度?

热门文章

  1. 第8课 Altium Designer20(AD20)+VESC6.4实战教程:绘制原理图5(北冥有鱼)
  2. RabbitMQ实现死信队列
  3. 互联网摸鱼日报(2022-09-25)
  4. 大型旅游景区指挥调度通信系统解决方案
  5. vs2015中无法设置Qt版本,qt project setting 是灰色,Qt无法编译ui文件
  6. javaweb论坛网站源码
  7. 面试接连翻车,我到底该怎么办
  8. WCDMA的高速引擎 细解HSDPA技术(转)
  9. 【L2-035 完全二叉树的层序遍历】天梯赛L2详解
  10. 辰视机器人3D视觉案例集锦 | 制造业无序工件上下料