
课程咨询: 400-996-5531
投诉建议: 400-111-8989
认真做教育 专心促就业
看视频相信大家应该在日常生活中会经常发生的一个行为吧,今天我们就通过案例分析来简单了解一下,播放器性能监控常见问题分析。
一、播放痛点
根据我们平时的开发实践,我们总结出播放过程中常见的几类问题:
播放失败率高
播放帧慢
播放卡顿
播放器占用CPU、内存过高
面对这些问题,我们急切需要知道两方面的数据:
怎么监控这些问题
怎么解决这类问题
这两个问题是有有递进关系的,“怎么监控这些问题”就是为了更好地“解决这类问题”。
二、监控手段
我们得知上面的痛点,在发生这些问题时,我们要收集相应的数据分析这类问题,不然开发者一头雾水,不知道播放过程的数据信息,解决问题全靠运气。
1、网络加载监控
播放视频要的是网络加载,网络请求是一个复杂的过程,全链路的点太多,将全链路的所有点收集起来,可以在播放器中加上网络的全链路监控:
这样我们对网络的整体加载情况有了全面的把握,发生网络加载问题,也知道是哪个点出现了问题,分析解决问题有了更加全的数据。
2、播放器全链路监控
开篇就分析了播放器的完整流程,其实开发者也非常需要当前播放器的运行状态:
播放器的工作状态也可以拆解一下:
播放器发生状态异常,开发者可以明确获知播放器当前所处的状态。
每个状态都可能发生异常,发生异常都有具体的原因。利用播放器状态、播放器出错情况构建一个较为完善的播放监控体系。
3、播放器流畅度监控
播放卡顿,就是播放过程中发生loading,UI直接显示转圈,这对用户体验的损害是巨大的,用户在不断的吐槽中默默地卸载了我们的app。卡顿的主要原因是网络状况不好,很小的一部分原因是源的问题。
卡顿的次数
卡顿的时长
卡顿时的网速
单次播放平均卡顿次数和卡顿时间是我们衡量播放流畅度的重要指标。
如果是源的问题,例如出现播放视频的时候,进度条在走,但是画面不走,就是视频解码出现问题,但是又没有出错,只是解码出的数据有问题。
解码出的数据有问题,有两种情况:原始数据就存在问题,这种情况下基本无法优化;另一种情况下是解码线程异常。
MediaCodec发生异常
解码线程异常错误
监控发生问题时系统codec的具体状态,然后上报,便于分析问题。
三、播放成功率优化
播放失败的原因很多,使用播放器播放视频,终都会在Player.onError回调中通知开发者播放失败了,多返回一个错误码,对应一个播放错误。
总结而言,播放错误主要分为下面几类:
网络加载错误:网络请求发生问题,可能是网络请求的任何一个阶段。
视频格式识别错误:不支持当前的格式,或者当前格式识别出错。
解码出错:不支持当前视频、音频解码导致的出错,或者系统codec异常导致的问题。
文件的IO异常:读取缓存文件发生问题。
网络加载错误一般要视情况而定,网络超时要做好超时重试机制。
视频格式支持使用ffmpeg能解决基本上所有的视频格式的识别和处理工作。
MediaCodec解码受到手机硬件的制约,解码有时候会出错,出错可以切换到软解码。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。