游戏开发遇到问题总结

webview视频相关问题

1、格式问题:视频格式最好是H.264 Main。否则会出现没有图像有声音的问题。

H.264有四种画质级别,分别是baseline, extended, main, high:

1. Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;
2. Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)CAVLC;(用的少)
3. Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),也支持CAVLC 和CABAC 的支持;
4. High profile:高级画质。在main Profile 的基础上增加了8x8内部预测、自定义量化、 无损视频编码和更多的  YUV 格式;

H.264 Baseline profile、Extended profile和Main profile都是针对8位样本数据、4:2:0格式(YUV

   根据应用领域的不同,Baseline profile多应用于实时通信领域,Main profile多应用于流媒体领域,High profile则多应用于广电和存储领域。

注:还看到过一篇文章说视频再safari不能播放,但在其它浏览器可以,发现是文件名中有空格不行导致,特此备注一下。

     参考网址:iOS播放视频没有画面只有声音 - 简书

 目前外教视频这编码设置以及混合码率模式这2个用的是MP42  VBR;

2、xr  &  ios13.4.1问题比较多,调用客户端分享回来之后没有声音,或者退到后台回来没有声音

    背景:代码设置了同步静音键SoundManager.useAudioMusic=false;所以背景音以及音效都是用webaudio播放的。

     解决方案:经过测试发现一个hack,就是用audio播放一个音频就有声音了。也就是audio播放的音频不会收到音效,并且播放一次audio,webaudio声音没有的问题也可以恢复。

3、客户端设置视频自动播放属性未生效,导致部分用户进去视频不能自动播放。

    解决方案:前端这边暂时的处理方式是如果监听video的play发生异常就显示一个h5播放按钮,让用户手动点击触发播放,laya的 canvas里面的播放按钮第一次触发不了播放操作,故而用的是dom节点。

4、外教视频下载报错很快通知客户端加载失败问题。

    解决方案:video标签插入后调用load方法,增加重试机制,如果重试5次还不行就通知客户端加载失败。后看数据发现有很多用户重试1次视频就加载成功了。

5、外教视频video error code=4 or 3比较多。

6、清除缓存,外教视频语音题录音完成后出现图像继续声音没有的问题,拖动一下进度条又会出现声音。

    解决方案:通过测试,继续的时候设置一下视频的currentTime,然后在调动play即可解决声音跟图像不匹配问题。

7、有一个华为Nova用户外教视频播放不了,卡在第一帧,通过打点发现play方法都调用了,后经过定位,用户因为长期未重启手机所致,重启手机好了。

8、安卓点击进入外教视频图标,立即切后台,有些机型加载不出来页面。

此问题应该是进入后台,安卓暂停了视频的自动下载,导致进入不了canplaythrough事件,无法继续。

9、ios15如果处于低电量模式,那webview内的外教视频是黑屏。其它非15还没有试过,试过再备注。

解决方案:ios15在低电量模式,如果给video设置旋转了rotate属性,视频会显示不出来,但是如果给video包一层div,把旋转属性放在父层的div标签就没有问题了。

10、ios15 webview视频没有声音问题,webview内播放视频,那游戏用audiocontext来播放大概率就会播不出来声音,进入不了声音的end函数。外教视频课是在视频暂停游戏出题目的时候调用audiocotext的suspend方法,后续调用的时候会调用resume恢复。

游戏方面问题,主要是内存优化

1、手机系统调节字体,安卓app可以通过设置防止app内字体随着系统字体变大而跟着改变,从而影响布局。

2、内存优化。如果内存过大,webview就会白屏,所以内存的优化至关重要。

     资源方面必须的资源都是先加载,不着急的资源可以后续按需加载。

3、动画template最好有个统一的管理,同一个动画只创建一个模板实例,里面的多个动画可以用此实例创建,如果每个都创建一个实例,chrome内存快照中会出现多个删除不掉,内存会一直递增。

4、绘本优化的时候由于每个封面图比较大,所以翻页后前一页的资源会调用clearTextureRes清楚图片资源。此方法会销毁Texture使用的图片资源,保留texture壳,如果下次渲染的时候,发现texture使用的图片资源不存在,则会自动恢复。相比clearRes,clearTextureRes只是清理texture里面使用的图片资源,并不销毁texture,再次使用到的时候会自动恢复图片资源。而clearRes会彻底销毁texture,导致不能再使用;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值