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. RecyclerView使用笔记

    1.判断是否可以滑动 //是否可以上滑 ViewCompat.canScrollVertically(recyclerView, 1); //是否可以下滑 ViewCompat.canScrollVe ...

  2. js基础知识总结(全)

    1.js版HelloWorld <script type="text/javascript"> alert("HelloWorld"); </ ...

  3. 你的iOS静态库该减肥了

    我有点震惊,国内的具有极少的有关静态库开发的内容,除了一些简单的如何教你开发,而且是原创还是copy,谁知道呢?细思极恐,不扯那么远了,这里就已切身的爬坑经历提供几个静态库瘦身的方案. 公司最近开发完 ...

  4. Jenkins 实际项目操作

    .Abstract { padding: 15px; border: dotted 2px #999; color: #999; font-family: "Microsoft Yahei& ...

  5. 【UNIX】select、poll、epoll学习

    三者都是UNIX下多路复用的内核接口,select是跨平台的接口,poll是systemV标准,epoll是linux专有的接口,基于poll改造而成. select 函数原型: int select ...

  6. Nape的回调系统 nape.callbacks

    在Nape中增加一个回调大致分为三步 1:定义一些标签,并根据需求为不同的Interactor打上不同的标签 2:定义一个监听器,这个监听器定义了哪些标签触发了哪种行为之后做何种回调 3:为Space ...

  7. 理解shared_ptr<T> ---2

    1.引用计数字段不能放在资源管理类中.我们的解决办法是,把引用计数和资源绑在一起,进行二次封装.但是这样存在一个大问题,不同类型的资源管理类不能兼容.也就是说,shared_ptr<Dog> ...

  8. OC语言--NSFileManager&amp; NSFileHandle

    1.关于文件的介绍 ->什么是文件: 文件概念, 广义文件. 狭义文件(磁盘文件). 文件常见的使用操作(可用命令行演示文件操作的使用场景). ->什么是路径: 简单来说就是,在系统中,要 ...

  9. iOS开发——网络编程OC篇&GCDAsyncSocket编程

    GCDAsyncSocket编程 同上一篇文章一样,这里也是使用Socket实现一个聊天室,但是这里使用的是一个常用的框架实现的:GCDAsyncSocket 一:导入这个框架 二:声明这个Socke ...

  10. Web应用Word生成

    前段时间接到一个Web应用自己主动生成Word的需求,现整理了下一些关键步骤拿来分享一下. 思路:(注:这里仅仅针对WORD2003版本号.其他版本号大同小异.) 由于WORD文件内部的数据及格式等是 ...