Android应用开发一般会把UI和数据分离,分为应用侧(关注的是整个应用的性能),UI侧(主要是界面展现) 数据逻辑侧(主要是和后台交互的API封装),如果是视频类应用的话,android自带的播放器缺点明显,需要实现软解和硬解的结合。
应用侧
1 视频内容的补充
2. 基于Android和java提供的性能测试工具优化整体的性能(traceview,findbugs等)
UI侧
1. 基于Layoutopt工具优化界面布局
2. 界面向ios平台靠齐的同时需要符合AndroidDesign Guideline规范
数据逻辑侧
统计和SDK封装
播放技术侧
1. 直播性能的提升,主要的改进方法
1) 多线程软解
2) 画面显示速度提升
2. 增加缓冲百分比提示,实现方式
1) 需要针对特定的直播码率找到一个合适缓存buffer大小
2) 指定的缓存大小分成100等份反馈给界面
3. 基于openmax开放标准实现硬解码以减小手机功耗和后续的高清播放
1)ffmpeg只实现媒体文件容器(Container)的解析,如mp4,flv,avi等,分离出来的音视频数据交给openmax api解码(代替ffmpeg实现的软解函数)
2)ffmpeg音视频同步需要改进,由于手机解码能力有限,需要掉帧处理
4.播放拼接优化播放体验,主要是解决段与段之间帧数据中的PTS/DTS同步