接入腾讯云apass数智人[交互式]

该文详细介绍了如何使用腾讯云服务创建和管理视频流会话,包括获取APP_KEY和ACCESS_TOKEN,调用新建视频流会话接口获取sessionId和播放地址,建立WebSocket长链接进行数智人播报内容监听,通过WebSocket发送指令进行播报,以及关闭会话停止播放的步骤。过程中涉及到签名算法和HTTP/POST请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:

获取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(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值