腾讯云直播工具类

2023-11-12

Maven: -腾讯云直播

	<dependency>
		<groupId>com.tencentcloudapi</groupId>
		<artifactId>tencentcloud-sdk-java</artifactId>
		<!-- go to https://search.maven.org/search?q=tencentcloud-sdk-java and get the latest version. -->
		<!-- 请到https://search.maven.org/search?q=tencentcloud-sdk-java查询所有版本,最新版本如下 -->
		<version>3.1.324</version>
	</dependency>
import lombok.extern.slf4j.Slf4j;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;

/**
 * @description TODO 腾讯云直播工具类
 * @Author Administrator
 * @Date 2021/7/16
 * @Version 1.0
 **/
@Slf4j
public class TencentYunVedioUtil {

    private static final char[] DIGITS_LOWER =
            {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};


    /**
     * 获取推流地址中鉴权信息
     **/
    public static String getPlugFlowAAA(String key, String streamName){
        return getSafeUrl(key, streamName, getTxTime());
    }

    /**
     *  获取过期时间(注意: 腾讯云直播过期时间的时间戳长度必须是10位)
     **/
    private static long getTxTime(){
        /** #################################### 有效期向后推1天 ######################################### */
        return new Date((System.currentTimeMillis() + (1000 * 60 * 60 * 24)) / 1000).getTime();
    }

    /*
     * 鉴权信息 = KEY(鉴权key)+ streamName(根据业务获取) + txTime(推流地址过期时间)
     */
    public static String getSafeUrl(String key, String streamName, long txTime) {
        String input = new StringBuilder().
                append(key).
                append(streamName).
                append(Long.toHexString(txTime).toUpperCase()).toString();

        String txSecret = null;
        try {
            MessageDigest messageDigest = MessageDigest.getInstance("MD5");
            txSecret  = byteArrayToHexString(
                    messageDigest.digest(input.getBytes("UTF-8")));
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        return txSecret == null ? "" :
                new StringBuilder().
                        append("txSecret=").
                        append(txSecret).
                        append("&").
                        append("txTime=").
                        append(Long.toHexString(txTime).toUpperCase()).
                        toString();
    }

    private static String byteArrayToHexString(byte[] data) {
        char[] out = new char[data.length << 1];

        for (int i = 0, j = 0; i < data.length; i++) {
            out[j++] = DIGITS_LOWER[(0xF0 & data[i]) >>> 4];
            out[j++] = DIGITS_LOWER[0x0F & data[i]];
        }
        return new String(out);
    }


    /**
     * @Desc //TODO UTC格式转化为ISO 8601    直播封禁时间格式化
     * @Date 11:27 2021/8/3
     * @Param [date] 解禁时间点
     * @return java.lang.String
     **/    
    public static String UtcConvertToIso8601(Date date){
        TimeZone tz = TimeZone.getTimeZone("UTC");
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
        df.setTimeZone(tz);  //获取时区
        String nowAsISO = df.format(date);
        System.out.println("本地时间Date--->UTC时间String:" + nowAsISO);
        return nowAsISO;
    }


}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

腾讯云直播工具类 的相关文章

随机推荐

  • 各国搜索引擎大全

    找客户做seo都要用到搜索引擎 全球除了谷歌 每个国家都有自己的百度 用翻译软件翻译成当地的语言搜索可能会有惊喜 中国百度 http www baidu com等 菲律宾 Philippine http www yehey com 韩国 K
  • 【08】Nginx之负载均衡

    负载均衡的作用 1 解决服务器的高并发压力 提高应用程序的处理性能 2 提供故障转移 实现高可用 3 通过添加或减少服务器数量 增强网站的可扩展性 4 在负载均衡器上进行过滤 可以提高系统的安全性 实现方式 方式一 DNS轮询方式 域名系统
  • 二、Dubbo+SpringBoot+zookeerper整合(注解方式)

    Git地址 https github com boorZ demo dubbo git 注意 Git地址上的项目与本文章有差同 请参照文章与Git Git地址 https github com boorZ demo dubbo xml 注意
  • QTableView的表格项中加入图标的方法

    当在使用表格视图的时候 需要在表格每一行前面加入图标 应该怎么做呢 Qt中通过使用MVC的处理方式 很容易做到这一点 具体实现如下 先贴出图 让大家一睹为快 下面我就来介绍一下 上图的灯泡是怎么实现的 通过重载QAbstractTableM
  • 如何安装并运行SiB-CROP模型

    目录 1 环境配置 1 1 Supported Platforms 1 2 Prerequisites 2 下载SIB CROP代码 3 SIB CROP模型编译 4 下载驱动数据 5 SIB CROP模型运行 主要参考 1 官方文档 ht
  • PSYoungGen ParNewGeneration DefNewGeneration等名词解释

    HotSpot VM的GC组老人之一Jon Masamitsu很久之前就写过blog讲解这个 https blogs oracle com jonthecollector entry our collectors 简单来说 有这么多东西反映
  • Python+opencv:图像修复

    简介 OpenCV 是一个开源的计算机视觉库 它包含了许多图像处理和计算机视觉算法 使用 OpenCV 进行图像修复主要依赖于传统的图像处理技术 OpenCV 图像修复方法及其原理 1 去噪 图像去噪是消除图像中的噪声 提高图像质量的过程
  • Springboot2.0 上传图片 jar包导出启动(第二章)

    目录 一 目录文件结构讲解 二 文件上传实战 三 jar包方式运行web项目的文件上传和访问处理 核心知识 最后 一 目录文件结构讲解 简介 讲解SpringBoot目录文件结构和官方推荐的目录规范 1 目录讲解 src main java
  • 连接已失效_西门子S7-1500PLC如何通过IP地址进行HMI连接

    通过系统 IP 地址进行 HMI 连接 要求 S7 1500R H 冗余系统 如 CPU 1513R 1PN 系统 IP 地址已启用 带有 PROFINETI 接口的 HMI 设备 操作步骤 要与 S7 1500R H 冗余系统建立 HMI
  • ai人工智能_人工智能的6种最佳启动选择

    ai人工智能 意见 Opinion Artificial Intelligence is the fastest growing field in the present day According to fortune the stati
  • linux下u盘如何将分割的合在一起,我又一个8g的U盘,想分两个区,一个区装系统,用PE引导,另一个分割槽用来存放档案,有什么工具,怎么操作,...

    我又一个8g的U盘 想分两个区 一个区装系统 用PE引导 另一个分割槽用来存放档案 有什么工具 怎么操作 以下文字资料是由 历史新知网www lishixinzhi com 小编为大家搜集整理后发布的内容 让我们赶快一起来看一下吧 我又一个
  • Window10 64位,通过Python读取.mif, shp文件

    1 读取依赖库及安装 依赖模块osgeo osgeo依赖于GDAL mif 是Mapinfo支持的信息 shp是 postgis存储地理空间信息的文件格式 尝试了很多安装方法 包括安装Anaconda 因为有博客说anaconda中包含GD
  • 第8章 应用程序架构

    第8章 应用程序架构 之前 介绍了让团队可以对问题域的有用概念抽象建模的技术 不过 这一章将介绍可以在应用程序上下文中利用领域模型的模式 其中考虑到了持久化 展现以及其他技术需求 应用程序架构 遵循DDD原则开发软件不需要使用任何特殊的应用
  • macbook bluetooth is not available (蓝牙不可用)

    新的MacBookPro Retina 一直没用过蓝牙 今天碰巧带了蓝牙耳机 连接的时候发现蓝牙的图标上面多了一个波浪线 显示 is not available google了几种方法 1 删除 Library Preferences 并重
  • STL在算法设计中的应用——数据的排序

    数据的排序 STL在算法设计中的应用有如下几种 存放主数据 存放临时数据 检测数据元素的唯一性 数据的排序 优先队列作为堆 此篇主要内容就是 数据的排序 对于list容器中元素的排序可以使用其成员函数sort 对于数组或者vector等具有
  • Java OutputStreamWriter.write()方法具有什么功能呢?

    转自 Java OutputStreamWriter write 方法具有什么功能呢 下文笔者讲述OutputStreamWriter write 方法的功能简介说明 如下所示 OutputStreamWriter的功能 输出字符流 自动将
  • 博客搭建(零):静态博客和动态博客的区别

    更好的阅读地址哦 静态博客 HTML CSS Javascript 优点 速度快 占用小 成本低 很安全 不易崩溃 易于抓取 缺点 无法支持原生评论 访问量统计 注册登录等功能 操作繁琐 上手难 网页内容固定 代码完全公开 日常维护繁琐 结
  • Ubuntu安装qt-opensource-linux-x64-5.11.1教程

    登陆qt官方下载页面 http download qt io archive qt 本文以安装qt opensource linux x64 5 11 1为例 把下载好的qt opensource linux x64 5 11 1 run放
  • node.js多版本管理nvm安装、切换、443问题等

    一 背景 线上环境出现问题 前端小哥本地编译不通过需要帮其看一下具体原因 由于我本地的node版本时16 3 0 项目编译需要v14 19 3 由于不同的项目支持的node版本不同 此时需要一个node多版本的管理工具 这是需要nvm管理n
  • 腾讯云直播工具类

    Maven 腾讯云直播