一、设置云录制端点接口(setCloudRecordingEndpoint)
用于配置设备的云录制端点URL,通过SDK专用接口
avSendJSONCtrlRequest传递JSON格式参数,包含授权信息、用户代理和目标URL,实现云录制数据上传配置。该接口仅支持SDK调用方式,不支持HTTP直接请求。(一)请求参数
{
"args": {
"header": {
"Authentication": "Bearer fffffffffffff",
"User-Agent": "TUTK Device"
},
"url": "yyyyyyyyyyyyyyyyyyyyyyyy"
},
"func": "setCloudRecordingEndpoint"
}
| 参数路径 | 类型 | 必选 | 说明 |
|---|---|---|---|
func | String | 是 | 功能标识,固定值:setCloudRecordingEndpoint |
args.header.Authentication | String | 是 | 授权令牌,格式:Bearer {token},token需为有效且未过期的授权凭证 |
args.header.User-Agent | String | 是 | 用户代理标识,固定值:TUTK Device,不可自定义修改 |
args.url | String | 是 | 云录制端点URL,设备将向该地址上传录制数据,需确保URL可公网访问且协议为HTTPS |
(二)接口调用
1. API接口定义
AVAPI_API int32_t avSendJSONCtrlRequest(
int32_t av_index,
const char *json_request,
TUTKJsonObject **json_response_obj,
uint32_t timeout_sec
);
2. API参数说明
| 参数名 | 类型 | 方向 | 必选 | 说明 |
|---|---|---|---|---|
av_index | int32_t | in | 是 | AV通道索引,指定操作的设备通道,通过avClientStartEx获取 |
json_request | const char * | in | 是 | 需要传输的JSON格式请求数据(详见「请求参数」部分),需确保JSON格式合法 |
json_response_obj | TUTKJsonObject ** | out | 是 | 设备端回应的JSON数据指针,调用完成后需通过avFreeJSONCtrlResponse释放 |
timeout_sec | uint32_t | in | 是 | 秒级超时时间,建议设置为10秒;给0将一直等待,易导致线程阻塞 |
3. 调用示例(demo)
C语言调用示例
char vsaas_info[256];
memset(vsaas_info, 0, 256);
TUTKJsonObject *response_obj = NULL;
// 拼接JSON请求参数
sprintf(vsaas_info, "{\"func\":\"setCloudRecordingEndpoint\",\"args\":{\"header\":{\"Authentication\":\"Bearer %s\",\"User-Agent\":\"TUTK Device\"},\"url\":\"%s\"}}",
"fffffffffffff", // 替换为实际有效的Bearer Token
"https://asia-vpapi-tutk-stg.kalay.us/vsaas/api/v1/stream/stream_url/uuuuuuuuuuuuuuuuuuuu?stoken=ttttttttttttttttt" // 替换为实际云录制端点URL
);
// 调用SDK接口,超时时间10秒
int ret = avSendJSONCtrlRequest(0, vsaas_info, &response_obj, 10);
if (ret == 0) {
printf("云录制端点配置成功\n");
} else {
printf("云录制端点配置失败,错误码:%d\n", ret);
}
// 释放响应对象,避免内存泄漏
if (response_obj != NULL) {
avFreeJSONCtrlResponse(response_obj);
response_obj = NULL;
}
说明
APP应当在每次添加设备到vsaas的时候,将此信息发送给设备,只要成功发送一次即可,如果失败,则需要在下次连线设备的时候继续发送,直到成功为止。
