集成腾讯云TcPlayer并实现web端视频播放

npm方式集成

//在终端输入下载
npm install tcplayer.js

//在所需要的界面的script处引入
import TCPlayer from 'tcplayer.js';
import 'tcplayer.js/dist/tcplayer.min.css';

页面内放置播放器组件

<video id="player-container-id" width="414" height="270" preload="auto" playsinline webkit-playsinline>
</video>

播放器初始化

var player = TCPlayer('player-container-id', { // player-container-id 为播放器容器 ID,必须与 html 中一致
    fileID: '3701925921299637010', // 请传入需要播放的视频 fileID(必须)
    appID: '1500005696' // 请传入点播账号的 appID(必须)
  	psign:'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAwNTY5NiwiZmlsZUlkIjoiMzcwMTkyNTkyMTI5OTYzNzAxMCIsImN1cnJlbnRUaW1lU3RhbXAiOjE2MjY4NjAxNzYsImV4cGlyZVRpbWVTdGFtcCI6MjYyNjg1OTE3OSwicGNmZyI6InByaXZhdGUiLCJ1cmxBY2Nlc3NJbmZvIjp7InQiOiI5YzkyYjBhYiJ9LCJkcm1MaWNlbnNlSW5mbyI6eyJleHBpcmVUaW1lU3RhbXAiOjI2MjY4NTkxNzksInN0cmljdE1vZGUiOjJ9fQ.Bo5K5ThInc4n8AlzIZQ-CP9a49M2mEr9-zQLH9ocQgI',
});

上面是播放器初始化的代码,其中,psign是播放器派发的签名,需要先得到签名才可以播放。

psign签名参数

在这里插入图片描述

签名获取类

官方的产品文档提供了签名获取的实例代码,稍作注释后展示在下方。不过该实例是静态的,可以稍作修改,将fileId、appId等作为参数传入,动态获取签名。

import java.util.*;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTCreationException;
import com.auth0.jwt.JWT;

class Main {
    public static void main(String[] args) {
        Integer AppId = 1255566655;
        String FileId = "4564972818519602447";
        String AudioVideoType = "RawAdaptive";
        Integer RawAdaptiveDefinition = 10;
        Integer ImageSpriteDefinition = 10;
        // 设置签名派发的当前时间(必须的)和过期时间(不必须,不填就默认不会过期)
        // 所有的时间戳都是unix时间戳,可以用(int)System.currentTimeMillis()生成
        Integer CurrentTime = (int)System.currentTimeMillis();
        Integer PsignExpire = (int)System.currentTimeMillis();
    
        // playkey需要在控制台处找到
        String PlayKey = "TxtyhLlgo7J3iOADIron";
        
        // 防盗链之类的配置,不是必须的
        HashMap<String, Object> urlAccessInfo = new HashMap<String, Object>();
        String UrlTimeExpire = "5ebe9423‬";
        urlAccessInfo.put("t", UrlTimeExpire);
        // 必须的,是被点播文件的具体内容
        HashMap<String, Object> contentInfo = new HashMap<String, Object>();
        contentInfo.put("audioVideoType", AudioVideoType);
        contentInfo.put("rawAdaptiveDefinition", RawAdaptiveDefinition);
        contentInfo.put("imageSpriteDefinition", ImageSpriteDefinition);

        // 生成签名
        try {
            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);
            System.out.println("token:" + token);
        } catch (JWTCreationException exception) {
            // Invalid Signing configuration / Couldn't convert Claims.
        }
    }
}

签名初始化的时机

TcPlayer初始化在遇到异步操作时可能会出现问题,比如获取不到组件之类的。这个时候可以考虑采用定时器进行操作。

// 初始化播放器
        setTimeout(() => {
                this.player=TCPlayer("player-container-id", {
                fileID: fileId, 
                appID: appID,  
                psign: psign,
                autoplay: false // 是否自动播放
                // 其他参数请在开发文档中查看
            })
        }, 2000)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值