针对IOTCamera项目,多播放器多样式展示的框架规划
1、TUTK、IoTSDK概览:
服务器:http\https\imsApiClient
设备交互;mqtt\p2p\cgi\things
出图方式:YUV\PlayerView\CMSampleBufferRef
2、可以将业务处理分为以下
UI视图分区设计:
根据单目、双目、三目设备可以分为单、双、三个播放器展示的Player和不同功能样式设备控制区
播放器区:承载画面输出(player+YUV),播放器内部工具视图;
设备控制区:被与播放器分开展示的设备相关控制;
导航工具区:导航栏、底部工具栏(可无)。
功能逻辑代码唯一,高度复用:
UI层 --〉功能调用层 --〉功能实现层
PlayerView
CameraControlView
NavTabView
1)、Device 是一个单利:完成不同的业务需求:直播、卡回放、设备控制;
DeviceInfo;通过方案选择,不同的通信方式:
P2P:处理TUTK P2P相关业务调用、回调。关于设备连接、流处理、异常处理可以单独拉 出来DeviceConnect中处理。
MQTT:处理MQTT的调用、回调。
IMS :处理阿里直播、点播播放器业务。
ThingShell:处理阿里物模型业务。
CGI:处理CGI调用业务。
HTTPS:处理网络请求业务。
NormalDataProcess:接受以上数据,进行统一处理,回调返回给UI层。
3、 可以类似IMSSDKplayer方式,封装统一播放视图;
1)、在使用阿里Player和TUTK的CMSampleBufferRef显示流时,提供给用户playerVIew来承载LVGlkView/UIImageView给UI层展示。尽可能的在UI层使用就是一个播放器的使用效果。
2)、在使用YUV模式下,提供给UI层的playerVIew承载的是UIImageView展示。