您的位置:首页 > 移动开发 > Unity3D

定位unity在rk3288平台上音频解码无效的bug---定位终成功

2016-03-16 10:37 866 查看
定位unity在rk3288平台上音频解码无效的bug

作为一个完全不懂unity的人,从0开始定位,略麻烦。。。

背景:公司开发了一款基于UNITY的游戏,作为一个亮点宣传。

问题:游戏在RK3288平台上无法正常使用。音频文件无法解码。播放出来都是滋滋滋滋杂音。。。

游戏:委托第三方开发

平板:由方案公司提供,方案公司又需要RK支持才能解决。

现状:这里其实是4方,我司是甲方,乙方各执一词,不牵头定位就找不到原因,游戏必然被砍。要求方案公司查,然后方案公司再去找RK,呵呵,基本没戏。方向在游戏商上。

定位开始:

1. RK3288对游戏引擎的支持不行

---思路------------------判断是否是通病,找市面上现有的相同引擎开发的可正常使用的游戏测试.

---解决------------------根据百度,找到一款:涂鸦保龄球,可以正常出声。经过解包确认,的确是用的unity引擎(游戏方居然跟我说不肯定是不是用的unity,还是得靠自己啊)---排查完毕

2. RK3288对游戏引擎的不同版本支持不行

---思路------------------在1的基础上,判断是否对不同版本的支持不一样?

---解决------------------要求游戏方编译一个最简单的demo程序,仅播放音频,方便降级升级unity引擎版本

3. 不同Unity的音频文件提取进行测试

---解决------------------经分析,音频文件在unity中会被转换一次,重新生成新文件,并由产生索引文件定位,从游戏产生的apk中可以体现,resource全部为无扩展名的文件,由unity_default_resources和unity_builtin_extra进行定位。-------此路不通

4. unity3d调用的so库是否可查

---解决------------------unity3d是一个收费引擎,闭源的,无法从底层着手处理,只能测试。-------此路不通

5. unity3d是否分音频引擎和视频引擎,是否之间有影响?

---解决------------------游戏的渲染,是否会对音频io产生影响,在闭源的情况下,这些实现细节不得而知,只能测试。--------此路不通

小结:不知道游戏在产生时调用的so,不知道引擎渲染是否有影响,不知道其他游戏的音频文件。

那边只能,通过版本先定位了

艰辛定位路

1. 按照之前的思路, 再次试了10款游戏, 均正常.

2. 这10款游戏随机查看其中的unity版本, 发现均在3.x 4.x的样子

3. 游戏方给出demo进行试验

第一版:AudioTestProject.apk --- unity5.x,打包环境android5.1, 我方机器(android 5.1.1)

-------------result: failed-----声音播放失败

第二版:AudioTestProject.apk --- unity4.x,打包环境android4.0.3,我方机器(android 5.1.1)

-------------result: passed-----声音一切正常

第三版:AudioTestProject.apk --- unity4.x,打包环境android4.4, 我方机器(android 5.1.1)

-------------result: passed-----声音一切正常

第四版:AudioTestProject.apk --- unity5.x,打包环境android4.0.3,我方机器(android 5.1.1)

-------------result: failed-----按键点击无效

第五版:AudioTestProject.apk --- unity5.0.1,打包环境android4.0.3,我方机器(android 5.1.1)

-------------result: failed-----按键点击无效---但是音乐播放成功

第六版:AudioTestProject.apk --- unity5.0.1,打包环境android4.0.3,我方机器(android 5.1.1)----经过游戏方修改

-------------result: passed-----按键正常,音乐正常

总结:

unity5.0之后,不向下兼容----故,在android4.x上都是没问题的,唯独升上android5.x就出现问题。

也说明了unity5.x 对 android5.x的兼容性存在问题。有待提高。

为今之计,解决策略:只能是unity降低版本。具体做法:改版到低版本,找到一个最接近的unity版本,剩下的再测试游戏,修改ERROR

定位问题不难,难的是沟通,跟方案公司的沟通,真累啊...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: