腾讯点播试看视频功能分享

超、凢脫俗 2022-12-20 05:38 639阅读 0赞

腾讯点播试看视频功能分享

在这里插入图片描述

key防盗链:超级播放器签名 ,
代码如下

  1. import com.auth0.jwt.JWT;
  2. import com.auth0.jwt.algorithms.Algorithm;
  3. import com.auth0.jwt.exceptions.JWTCreationException;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. import java.util.HashMap;
  7. /** * 腾讯云 点播--试看视频--签名 * @author zj */
  8. public class WatchVideoUtils {
  9. /** * * key--签名 * @return */
  10. public static String getToken(Integer AppId,String FileId,Long CurrentTime,Long PsignExpire){
  11. String signature = "";
  12. AppId = AppId;//账号 appId
  13. FileId = FileId;//文件 ID
  14. CurrentTime = toNowDay();//派发签名当前 Unix 时间戳
  15. PsignExpire = toUnix(addOneDay());//派发签名到期 Unix 时间戳,不填表示不过期(3分钟)
  16. String UrlTimeExpire = to16Hex(addOneDay());//防盗链的过期时间(3分钟)
  17. String Key = "防盗链 KEY";//防盗链 KEY
  18. HashMap<String, Object> urlAccessInfo = new HashMap<String, Object>();
  19. urlAccessInfo.put("t", UrlTimeExpire);//
  20. urlAccessInfo.put("exper", 180);//试看时长(秒)
  21. try {
  22. Algorithm algorithm = Algorithm.HMAC256(Key);
  23. signature = JWT.create().withClaim("appId", AppId).withClaim("fileId", FileId)
  24. .withClaim("currentTimeStamp", CurrentTime).withClaim("expireTimeStamp", PsignExpire)
  25. .withClaim("urlAccessInfo", urlAccessInfo).sign(algorithm);
  26. //System.out.println("token:" + signature);
  27. } catch (JWTCreationException exception) {
  28. // Invalid Signing configuration / Couldn't convert Claims.
  29. }
  30. return signature;
  31. }
  32. /** * 将当前时间转换为16进制 * @return */
  33. public static String to16Hex(Date date) {
  34. Long ab = date.getTime()/1000;
  35. String a = Long.toHexString(ab);
  36. return a;
  37. }
  38. /** * 将当前时间--unix时间 * @return */
  39. public static Long toUnix(Date date) {
  40. Long ab = date.getTime()/1000L;
  41. return ab;
  42. }
  43. /** * 将当前时间加3分钟 * */
  44. public static Date addOneDay() {
  45. Calendar cal = Calendar.getInstance();
  46. cal.add(Calendar.MINUTE, 3);
  47. Date date = cal.getTime();
  48. return date;
  49. }
  50. /** * 当前 Unix 时间戳 * @return */
  51. public static Long toNowDay(){
  52. return System.currentTimeMillis()/1000L;
  53. }
  54. public static void main(String[] args) {
  55. System.out.println("signature:" +getToken(' '," ",1589448067L,1589548067L));
  56. System.out.println(to16Hex(new Date()));
  57. }
  58. }

温馨提示:
页面代码报错:
在这里插入图片描述
该bug是腾讯的这个js版本不对,需要更换为如下:

  1. <link href="https://imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.min.css" rel="stylesheet"/>
  2. <script src="https://imgcache.qq.com/open/qcloud/video/tcplayer/libs/hls.min.0.13.2m.js"></script>
  3. <!-- 引入播放器 js 文件 -->
  4. <script src="https://imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.v4.1.min.js"></script>
  5. 希望其他小伙伴不要跟我一样走坑

发表评论

表情:
评论列表 (有 0 条评论,639人围观)

还没有评论,来说两句吧...

相关阅读