第一步:
获取APP_KEY,ACCESS_TOKEN,可以在腾讯云控制台页面获取
第二步:
调用【新建视频流会话接口】获取[sessionId]会话唯一标识,[PlayStreamAddr]播放地址
调用步骤:
public VhNewSessionResultDTO newSession() {
VhNewSessionResultDTO resultDTO = null;
try {
long currentTime = System.currentTimeMillis() / 1000;
String signature = getSignature(currentTime);
VhOperateDTO operateDTO = new VhOperateDTO();
VhNewSessionOperateDTO sessionOperateDTO = new VhNewSessionOperateDTO();
//test zhc
sessionOperateDTO.setUserId(TEST_USER_ID).setSessionId(new StringBuilder().append(SESSION_PREFIX).append(System.currentTimeMillis()).toString());
operateDTO.setPayload(sessionOperateDTO);
log.info("VirtualHumanPerformer.newSession-->operateDTO:{}", operateDTO);
VhResponseDTO<VhNewSessionResultDTO> responseDTO = tencentCloudVhClient.newSession(currentTime, signature, APP_KEY, operateDTO);
log.info("VirtualHumanPerformer.newSession-->responseDTO:{}", responseDTO);
if (ObjectUtils.isNotEmpty(responseDTO)) {
resultDTO = responseDTO.getPayload();
}
} catch (Exception e) {
log.error("VirtualHumanPerformer.newSession-->", e);
}
return resultDTO;
}
/**
* 新建视频流会话接口
*
* @param timestamp
* @param signature
* @param appkey
* @param operateDTO
* @return
*/
@PostMapping(value = "v2/ivh/streammanager/streamservice/newsession", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8")
VhResponseDTO<VhNewSessionResultDTO> newSession(@RequestParam("timestamp") long timestamp,
@RequestParam("signature") String signature,
@RequestParam("appkey") String appkey,
@RequestBody VhOperateDTO operateDTO);
获取签名函数:
/**
* @param currentTime
* @return
*/
private String getSignature(long currentTime) {
try {
byte[] hashBytes = HmacSha256(new StringBuilder()
.append(TencentContents.APP_KEY)
.append(StringPool.EQUAL)
.append(APP_KEY)
.append(StringPool.AMPERSAND)
.append(TencentContents.TIMESTAMP)
.append(StringPool.EQUAL)
.append(currentTime).toString(