手机直播开发使用基本的MVC框架即可,部分Controller的业务逻辑较多,独立的业务可以拆分出去作为一个单独的Catagory;Model的数据变化采用event(notification)的形式通知,便于做多处数据绑定;Model之间的相互独立,如果由业务需要,需要交换Model的数据,由Controller代为处理;HTTPService为AFNetworking封装,回调Model以Block块为主,特殊的业务逻辑以event(notification)的形式通知;
具体模块
视图
1、GiftView
显示礼物,管理小礼物与豪华礼物动画;
核心:
小礼物连击效果,队列存储豪华礼物消息,播放完毕回调。
小礼物用CAAnimation动画和UIView Block动画;
豪华礼物用CAAnimation动画和UIView Block动画+GCD协调;
2、MessageView
显示聊天消息,弹幕消息。
核心:
聊天tableView,用NSMutableAttributedString显示富文本;
- (CGRect)boundingRectWithSize:options: attributes:context:计算高度并缓存;
弹幕消息用队列存储弹幕,UIViewBlock动画循环播放,最多同时显示条数限制;
控制器
1、ChatViewController
第三方聊天控制器做基类,自定义业务逻辑,包括私聊送礼物、广告屏蔽等,包括ChatListViewController和ChatDetailViewController。
2、WatchLiveViewController
观看直播控制器,包括LivePlayer(视频流播放器),房间业务逻辑相关,接受聊天消息转发给MessageView,切换前后台(APP生命周期)控制;