一、設(shè)置云錄制端點接口(setCloudRecordingEndpoint)
用于配置設(shè)備的云錄制端點URL,通過SDK專用接口
avSendJSONCtrlRequest傳遞JSON格式參數(shù),包含授權(quán)信息、用戶代理和目標URL,實現(xiàn)云錄制數(shù)據(jù)上傳配置。該接口僅支持SDK調(diào)用方式,不支持HTTP直接請求。(一)VSaaS Info定義:
{
"args": {
"header": {
"Authentication": "Bearer fffffffffffff",
"User-Agent": "TUTK Device"
},
"url": "yyyyyyyyyyyyyyyyyyyyyyyy"
},
"func": "setCloudRecordingEndpoint"
}
| 參數(shù)路徑 | 類型 | 必選 | 說明 |
|---|---|---|---|
func | String | 是 | 功能標識,固定值:setCloudRecordingEndpoint |
args.header.Authentication | String | 是 | 授權(quán)令牌,格式:Bearer {token},token需為有效且未過期的授權(quán)憑證 |
args.header.User-Agent | String | 是 | 用戶代理標識,固定值:TUTK Device,不可自定義修改 |
args.url | String | 是 | 云錄制端點URL,設(shè)備將向該地址上傳錄制數(shù)據(jù),需確保URL可公網(wǎng)訪問且協(xié)議為HTTPS |
(二)接口調(diào)用
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參數(shù)說明
| 參數(shù)名 | 類型 | 方向 | 必選 | 說明 |
|---|---|---|---|---|
av_index | int32_t | in | 是 | AV通道索引,指定操作的設(shè)備通道,通過avClientStartEx獲取 |
json_request | const char * | in | 是 | 需要傳輸?shù)腏SON格式請求數(shù)據(jù)(詳見「請求參數(shù)」部分),需確保JSON格式合法 |
json_response_obj | TUTKJsonObject ** | out | 是 | 設(shè)備端回應的JSON數(shù)據(jù)指針,調(diào)用完成后需通過avFreeJSONCtrlResponse釋放 |
timeout_sec | uint32_t | in | 是 | 秒級超時時間,建議設(shè)置為10秒;給0將一直等待,易導致線程阻塞 |
3. 調(diào)用示例(demo)
C語言調(diào)用示例
char vsaas_info[256];
memset(vsaas_info, 0, 256);
TUTKJsonObject *response_obj = NULL;
// 拼接JSON請求參數(shù)
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
);
// 調(diào)用SDK接口,超時時間10秒
int ret = avSendJSONCtrlRequest(0, vsaas_info, &response_obj, 10);
if (ret == 0) {
printf("云錄制端點配置成功\n");
} else {
printf("云錄制端點配置失敗,錯誤碼:%d\n", ret);
}
// 釋放響應對象,避免內(nèi)存泄漏
if (response_obj != NULL) {
avFreeJSONCtrlResponse(response_obj);
response_obj = NULL;
}
說明
APP應當在每次添加設(shè)備到vsaas的時候,將此信息發(fā)送給設(shè)備,只要成功發(fā)送一次即可,如果失敗,則需要在下次連線設(shè)備的時候繼續(xù)發(fā)送,直到成功為止。
