概览:
本章节主要讨论影像类产品的一个标准功能---回放功能-----的对接引导,阅览本章节的前提是,开发者已经可以使用AVAPIs进行实时观看。
主要涉及到的模块是:IOTCAPIs、AVAPIs。
主要涉及到的API是:avSendIOCtrl/avRecvIOCtrl、avClientStartEx/avServStartEx、avRecvFrameData2/avSendFrameData,avClientStop/avServStop。
流程:
要点:
- 回放的前提,是要先建立P2P连线,和AV通道。
- 如果是使用AVAPIs做下载功能,一定要开启resend功能。开启的方法就是avClientStartEx和avServStartEx参数里面的resend设置为1。
- 建议设备端要检查avSendFrameData的返回值,如果返回值是-20006(缓存区溢出),需要进行重传此帧;特别是下载功能。
- 回放结束两端的处理建议
- 设备端:
- 送完最后一帧后,需要使用avResendBufUsageRate检查缓存区是否还有数据没送出,只有缓存区清空的情况下,才代表数据已经完全送出,才能关闭通道。
- 最后一帧,需要把frameInfo里面的tag标记为1。非最后一帧为0。
- 缓存区清空后,建议延时1s再关闭通道,以免APP端还没收完数据。
- app端:
- APP需要判断frameInfo的tag是否为1,为1时表示已收完最后一帧,可以进行关闭和释放资源的操作。
- 文件下载:文件下载的流程与上述流程基本一样,唯一的差异是,不像回放的送流方式,在下载的时候,设备端可以不按照一帧一帧的方式送,可以每次送固定大小字节数的二进制流给APP端,APP端只做保存即可。