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. HW6.19

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  2. A Tour of Go Exercise: Images

    Remember the picture generator you wrote earlier? Let's write another one, but this time it will ret ...

  3. EntityFramework 连接数据库出错

    本文转载:http://www.cnblogs.com/shuang121/archive/2012/03/19/2406121.html 总结:选择“是”时,连接字符串的密码会暴露出来,“否”的时候 ...

  4. 作为平台的Windows PowerShell(一)

    除了作为一种脚本语言外,Windows PowerShell被多种应用程序使用.这是因为Windows PowerShell引擎可以被托管在一个应用程序内部.这篇博文和下一篇博文将会处理在C#应用程序 ...

  5. 获取WMI硬件清单

    WMI服务能够报告详细的硬件信息.通常,每个硬件都来自它们自己的WMI代理类.但是要找出这些硬件类的名字是不容易. 所有硬件类都在同一个WMI根下面,你可以在根类查询所有的硬件: Get-WmiObj ...

  6. eclipse+webservice开发实例

    1.參考文献: 1.利用Java编写简单的WebService实例  http://nopainnogain.iteye.com/blog/791525 2.Axis2与Eclipse整合开发Web ...

  7. tomcat的几种部署方法

    原文:http://blog.163.com/pg_roger/blog/static/185884389201172921211937/ 1.将应用文件夹或war文件(均指编译好的文件)塞到tomc ...

  8. ProgressSeekBar

    ProgressSeekBar.rar

  9. 关于js的replace替换

    关于js的replace替换 msgContent = msgContent.replace("a","b"); 这样的替换只会把第一个a替换成b,不会替换全部 ...

  10. oracle之单行函数

     单行函数 ①.字符函数 LOWER(x):将x中的每一个单词都转换成小写 UPPER(x):将x中的每一个单词都转换成大写 INITCAP(x): 将x中的每一个单词的首字母转换成大写 CONC ...