P114 【尚硅谷&腾讯云】Java项目硅谷课堂 腾讯云点播需要加上签名psign

解决方法

1.建 一个 Psign类

引入依赖

  <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>3.10.0</version>
        </dependency>
package com.atguigu.utils;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTCreationException;

import java.util.HashMap;

public class Psign {

    public static String getPsign(Integer appId, String fileId){
        Integer AppId = appId; //点播应用 appId。
        String FileId = fileId; //点播文件 ID。
        String AudioVideoType = "RawAdaptive";
        //播放的音视频类型,可选值
        // RawAdaptive:未加密的 转自适应码流 输出。
        //ProtectedAdaptive:私有加密或 DRM 保护的 转自适应码流 输出。
        //Transcode:转码 后输出。
        //Original:上传 的原始音视频。
        Integer RawAdaptiveDefinition = 10;
        Integer ImageSpriteDefinition = 10;
        Integer CurrentTime = Math.toIntExact(System.currentTimeMillis() / 1000);//派发签名当前 Unix 时间戳
//        Integer PsignExpire = 1589548067;//派发签名到期 Unix 时间戳,不填表示不过期。
//        String UrlTimeExpire = "5ebe9423‬";
        String PlayKey = "XeI9BN7D3BDLm7PycdWg";//播放密钥


        HashMap<String, Object> urlAccessInfo = new HashMap<String, Object>();
//        urlAccessInfo.put("t", UrlTimeExpire);
        HashMap<String, Object> contentInfo = new HashMap<String, Object>();
        contentInfo.put("audioVideoType", AudioVideoType);
        contentInfo.put("rawAdaptiveDefinition", RawAdaptiveDefinition);
        contentInfo.put("imageSpriteDefinition", ImageSpriteDefinition);


            Algorithm algorithm = Algorithm.HMAC256(PlayKey);
            String token = JWT.create().withClaim("appId", AppId).withClaim("fileId", FileId)
                    .withClaim("contentInfo", contentInfo)
                    .withClaim("currentTimeStamp", CurrentTime)
//                    .withClaim("expireTimeStamp", PsignExpire)
                    .withClaim("urlAccessInfo", urlAccessInfo).sign(algorithm);
            return token;
    }
}

 

 

 这里可以测试 psign 是否正确

填好 
AppId、FileId、AudioVideoType、RawAdaptiveDefinition、ImageSpriteDefinition、CurrentTime、PlayKey  自己的这几个属性值

详情见注释或者已下官网

云点播 播放器签名-开发指南-文档中心-腾讯云 (tencent.com)

2.修改VodServiceImpl.java  文件中这个方法  把 Psign加入到map 返回

//点播视频播放接口
    @Override
    public Object getPlayAuth(Long courseId, Long videoId) {
        //根据小节id获取小节对象,获取腾讯云视频id
        Video video = videoService.getById(videoId);
        if(video == null) {
            throw new GgktExcetion(20001,"小节信息不存在");

        }
        String videoSourceId = video.getVideoSourceId();
         Integer id= Integer.valueOf(appId);
        String psign = Psign.getPsign(id,video.getVideoSourceId());
        Map<String, Object> map = new HashMap<>();
        map.put("videoSourceId",video.getVideoSourceId());
        map.put("appId",appId);
        map.put("psign",psign);
        return map;
    }

3.修改前端views->play.vue   把psign加入

//视频播放
        play(data) {
            //window.location = './video.html?fileID='+data.videoSourceId+'&appID='+data.appId;
            var player = TCPlayer("player-container-id", { /**player-container-id 为播放器容器ID,必须与html中一致*/
                fileID: data.videoSourceId, /**请传入需要播放的视频fileID 必须 */
                appID: data.appId, /**请传入点播账号的子应用appID 必须 */
                psign: data.psign
                // psign: ""
                /**其他参数请在开发文档中查看 */
             });

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值