Unity3d 播放高质量视频解决方案~

最近在折腾一个视频游戏.真的是一个视频游戏,游戏主背景是个大视频.可能切换三四个视频,而且需要无缝切换.

平台是安卓,蕊片是rockclip.找了各式各样的插件.

  1. movietexture,只能播放OGG和OVG,而且质量比较低.如果要转成高质量的视频,文件尺寸比较大. 放弃,继续找.
  2. easymovietexture, 某些机子上黑滴~兼容性不好,继续找.
  3. avipro 额,是这个名字么,最后发现只能在IOS上使用.继续找.
  4. Vuforia video playback (下方使用vvp代替)高通的SDK里自带一个video playback.拿了出来,改了改能用.

但是有些问题, 在这里顺便扯一下给后面有需要的同学:

  1. 播放SD卡上的视频巨卡.是机器问题么?(倒没有在手机上试过,有试过的同学麻烦告知我.)我看了一下Log,出血的地方.其实不是真的报错.why? =.=
  2. vvp底层是使用mediaplayer进行播放.原理大概是在一个subface上播放,然后画在一张texture上,在unity3d里使用这张texture.
    1. 如果是使用streamasset目录下的视频,playertype会等于3,即使用awsomeplayer
    2. 如果在sd卡上的视频,playertype==7则使用FFPlayer. 使用FFplayer的时候会巨卡而且很慢. 

      由于使用了jmi, 我不太熟,没有具体调试瓶颈在哪里. 在vuforia论坛上问, 理所当然的没有人鸟. 我最后下载了android的源代码,想抽时间看看,最后还是没折腾成. 知道的同学告诉我一声哈.

  3. 播放方式.我一开始两个vvp来播放6个视频, a播放1,b播放2,a播放3,以此类推. 后来直接就闪退了..omg.我在安卓上直接使用mediaplayer是不会出现这个问题的.

    所以我推论是内存侧露了~ 后来改成6个vvp播放6个视频.由于是需要多次进这个场景播放不同的6个视频, 看来闪退也只是时间问题.

    我又在vuforia论坛上问, 又理所当然的没有人鸟.  (PS:我在vurofria论坛上见到一个货刷了一屏的问题.....)

  4. 卡咯~ 东西加多了,CD没有上去,但是还是卡了.各方面.VVP也是一方向. 后面的解决方案就不卡鸟.

最后的解决方案:

使用 Unity3d 4.2版本. 该版本可以在eclipse里设置u3d的subfaceview为透明. 从而与原生的元素一起显示.

嗯.以上方案我也是想到,然后GG出来的结果.

感谢前人的载树,不然这个项目我要栽了=.= 铁定是个各种不安定因素的东西.

我在eclipse里设置subfaceview透明,这个很容易做到.然后在view下加了个videoview. 生成jar后丢到u3d里. (额,这个大家应该都会.如果不会请留言我再把代码丢上来)

videoview里可以加载各种视频, 质量高, 不闪退, 还能播放SD卡上的视频, 性能也有提升. 性能提供了300%还稳定.

如果是需要小区域使用视频的同学,完全用代码控制视频的位置. 当然这是我的假定.真正实施应该还有其他问题.

OLE, 第一次写博客园的文章随意写到这儿. c u.

PS: 这儿的编辑器真不好用,而且没有u3d的分类 =.=

测试工程下载地址:http://download.csdn.net/detail/netfly53541314/9541212

注: 这个测试工程里只有安卓的示例. IOS也能做到,详情请GG.

Unity3d 播放高质量视频解决方案的更多相关文章

  1. WPF 视频硬解码渲染播放(无空域)(支持4K、8K、高帧率视频)

    MediaWPF 基于 .NET 6 实现视频硬解码渲染Demo(无空域问题) 代码实现仅供学习参考 本项目视频渲染通过显卡进行视频解码,CPU几乎不参与工作,并且不存在令人烦躁的空域问题. 在播放摄 ...

  2. 【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(三)流式播放Live HLS视频

    源码地址:https://github.com/Tinywan/PHP_Experience HTTP Live Streaming(HLS)是由Apple Inc.实施的非常强大的流视频协议.HLS ...

  3. 最快1天搭建短视频APP!阿里云短视频解决方案上线

    短视频行业的发展前景乐观是毋庸置疑的,整个短视频的市场规模一直在增长,网络数据显示2018年已经突破100亿大关,在2019年预测将超过200亿.那么,对于短视频从业者来讲,要持续推动业务的发展,必须 ...

  4. 如何写好一篇高质量的IEEE/ACM Transaction级别的计算机科学论文?

    转自<知乎>如何写好一篇高质量的IEEE/ACM Transaction级别的计算机科学论文? 问题: 作为一个博士生,一直为写论文头疼,读过很多高质量论文,觉得写的真好,但是轮到自己写总 ...

  5. AliIAC 智能音频编解码器:在有限带宽条件下带来更高质量的音频通话体验

    随着信息技术的发展,人们对实时通信的需求不断增加,并逐渐成为工作生活中不可或缺的一部分.每年海量的音视频通话分钟数对互联网基础设施提出了巨大的挑战.尽管目前全球的互联网用户绝大多数均处于良好的网络状况 ...

  6. 如何写出高质量的技术博客 这边文章出自http://www.jianshu.com/p/ae9ab21a5730 觉得不错直接拿过来了 好东西要大家分享嘛

        如何写出高质量的技术博客?答案是:如果你想,就一定能写出高质量的技术博客.看起来很唯心,但这就是事实.有足够愿力去做一件目标明确,有良好反馈系统的事情往往很简单.就是不停地训练,慢慢地,你自己 ...

  7. 高质量C++/C编程指南(林锐)

    推荐-高质量C++/C编程指南(林锐) 版本/状态 作者 参与者 起止日期 备注 V 0.9 草稿文件 林锐   2001-7-1至 2001-7-18 林锐起草 V 1.0 正式文件 林锐   20 ...

  8. 高质量C++[转]

    高质量C++/C编程指南 文件状态 [  ] 草稿文件 [√] 正式文件 [  ] 更改正式文件 文件标识: 当前版本: 1.0 作    者: 林锐 博士 完成日期: 2001年7月24日 版 本  ...

  9. iOS书摘之编写高质量iOS与OS X代码的52个有效方法

    来自<Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法>一书的摘要总结 一.熟悉Objective-C 了解Objective-C语言的起源 ...

随机推荐

  1. maven 约定

    pom.xml 放置在项目的根目录 在 src/main/java 中放置项目的主代码 在 src/main/resources放置主项目的资源 在 src/test/java 中放置项目的测试代码 ...

  2. 关于local storage及session storage 应用问题

    H5- storage 可以在不同页面内进行数据传递数据信息,保证了数据传输不许后台交互即可在前端部分自我实现,以下为local storage 应用个人简析: * localStorage * se ...

  3. 多线程基础及实例(java)

    前言: 每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程.线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行.也可以把它理解为代码运行的上下文.所以线程基本上是轻量级的进程 ...

  4. cc2530 timer 1 PWM 输出

    需要在ZStack 协议栈里使用PWM,于是使用其16bit的timer 1来实现之.使用 P1_0口输出,使用的是正计数/倒计数模式,占空比为50%.代码如下: #include <ioCC2 ...

  5. IOS设置button 图片 文字 上下、左右

    [btn setImage:imgNor forState:UIControlStateNormal]; [btn setImage:imgSel forState:UIControlStateSel ...

  6. C++多态的实现与局限性

    1.什么是多态? 父类指针指向子类对象,运行时期调用方法的时候,根据方法拥有者的真实类型,确定调用哪个方法. 2.如何实现多态? 要实现多态,需要加一个中间层,暴露父类的方法,内部根据指针的真实类型决 ...

  7. Nginx开发从入门到精通

    nginx由于出色的性能,在世界范围内受到了越来越多人的关注,在淘宝内部它更是被广泛的使用,众多的开发以及运维同学都迫切的想要了解nginx模块 的开发以及它的内部原理,但是国内却没有一本关于这方面的 ...

  8. BZOJ 1934: [Shoi2007]Vote 善意的投票 最小割

    1934: [Shoi2007]Vote 善意的投票 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnl ...

  9. Mac联网恢复系统重新安装Lion

    Mac的Lion系统,虽然不像Windows那样需要经常重装,但也难免会有要重置的时候,比如更换硬盘.本文介绍如何利用Mac的联网恢复系统进行Lion系统的在线恢复.Mac的在线恢复系统只在近几年的机 ...

  10. (转) 如何在JavaScript与ActiveX之间传递数据1

    本文研究如何在JS等脚本语言与ActiveX控件之间通信,如何传递各种类型的参数,以及COM的IDispatch接口.使用类似的方法,可以推广到其他所有脚本型语言,如LUA,AutoCad等.本文将研 ...