C#结合JavaScript实现上传视频到腾讯云点播平台
创始人
2024-11-04 06:33:34
0

目录

需求

关键代码

界面元素布局

C# 实现服务端的签名类

上传视频的JS实现

视频演示

小结


需求

在云培训系统里,制作视频课件是我们的主要工作之一,制作完成后如果将这些素材存储到服务器并进行分发播放,是摆在我们面前的一个问题。最终我们选择了腾讯云点播服务,其加速分发播放几乎适用所有需要展示图片或音视频媒体内容的在线场景,借助遍布全球的大量 CDN 加速节点,在复杂的网络环境也能提供高质量的媒体内容访问服务。

上传视频功能,主要要解决两个问题:

1、在服务端通过C#生成签名和SDKID

2、在客户端通过JavaScript上传视频到腾讯云点播服务器。

关键代码

界面元素布局

放置一个DIV容器,包括 file 上传控件(id:file1)、一个上传进度条的灰色背景层(id:ajax_uploadFiles_curbg)、一个传进度条的进度图片(id:ajax_uploadFiles_curprogress)、一个提示文字层(id:tip),图片及层采用绝对定位,并在上传过程中计算进度值以决定进度图片的宽度。

示例代码如下:

C# 实现服务端的签名类

上传之前需要提供您的开发APPID和开发密钥,以生成有效的签名,才可以进行上传操作,示例代码如下:

public class Signature          {              public string m_strSecId;              public string m_strSecKey;              public int m_iRandom;              public long m_qwNowTime;              public int m_iSignValidDuration;              public static long GetIntTimeStamp()              {                  TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1);                  return Convert.ToInt64(ts.TotalSeconds);              }              private byte[] hash_hmac_byte(string signatureString, string secretKey)              {                  var enc = Encoding.UTF8; HMACSHA1 hmac = new HMACSHA1(enc.GetBytes(secretKey));                  hmac.Initialize();                  byte[] buffer = enc.GetBytes(signatureString);                  return hmac.ComputeHash(buffer);              }              public string GetUploadSignature()              {                  string strContent = "";                  strContent += ("secretId=" + Uri.EscapeDataString((m_strSecId)));                  strContent += ("¤tTimeStamp=" + m_qwNowTime);                  strContent += ("&expireTime=" + (m_qwNowTime + m_iSignValidDuration));                  strContent += ("&random=" + m_iRandom);                   byte[] bytesSign = hash_hmac_byte(strContent, m_strSecKey);                  byte[] byteContent = System.Text.Encoding.Default.GetBytes(strContent);                  byte[] nCon = new byte[bytesSign.Length + byteContent.Length];                  bytesSign.CopyTo(nCon, 0);                  byteContent.CopyTo(nCon, bytesSign.Length);                  return Convert.ToBase64String(nCon);              }              public string getSign(int SignValidSeconds){                  Signature sign = new Signature();                  sign.m_strSecId = secretId;   //开发ID                  sign.m_strSecKey = secretKey; //开发密钥                  sign.m_qwNowTime = Signature.GetIntTimeStamp();                  sign.m_iRandom = new Random().Next(0, 1000000);                  sign.m_iSignValidDuration = SignValidSeconds;                   return rv = "{\"errcode\":0,\"sign\":\"" + sign.GetUploadSignature() + "\",\"sdkid\":\"1111111111\"}";                  }          }

调用 Signature类的 getSign(int SignValidSeconds) 方法生成签名,参数为签名有效期的秒数。 

上传视频的JS实现

实现功能之前需要引用一些必要的JS文件,我的资源下载链接地址:https://download.csdn.net/download/michaelline/88555774

//引用必要的三个js           
视频演示

JS上传视频到腾讯云点播

小结

以上提供的代码仅供参考,在实际的应用中,服务端 API URL 程序还需要身份验证或即时令牌访问等安全机制。

另外腾讯云媒体上传还提供了多种上传方式的SDK,具体可参考网址:https://cloud.tencent.com/document/product/266/9760

以上就是自己的一些分享,时间仓促,不妥之处还请大家批评指正!

相关内容

热门资讯

技巧辅助挂!pokermast... 技巧辅助挂!pokermaster修改器,丹东约战麻将辅助器,演示教程(有挂细节)1、点击下载安装,...
现场直击!wepokerplu... 现场直击!wepokerplus万能挂,丰城双剑新版最强高分攻略,操作教程(有挂方针)1.丰城双剑新...
插件辅助挂!wepoker有辅... 插件辅助挂!wepoker有辅助器吗,乐平包王攻略,学习教程(有挂方略)1、首先打开乐平包王攻略辅助...
据玩家消息!拱趴大菠萝辅助神器... 据玩家消息!拱趴大菠萝辅助神器,多乐跑得快辅助器,机巧教程(证实有挂)1、在拱趴大菠萝辅助神器插件功...
此事备受玩家关注!来玩app破... 此事备受玩家关注!来玩app破解版,h5能反杀吗,绝活教程(有挂详细)1、打开软件启动之后找到中间准...
值得注意的是!aapoker破... 值得注意的是!aapoker破解侠是真的吗,蜀山四川游戏修改工具,经验教程(有挂助手)1、金币登录送...
第三方辅助!wepoker脚本... 第三方辅助!wepoker脚本,广东星悦有外开挂辅助器吗,法门教程(有挂分析)广东星悦有外开挂辅助器...
此事引发广泛关注!德州透视脚本... 此事引发广泛关注!德州透视脚本,崇阳斗棋辅助脚本视频,诀窍教程(的确有挂)暗藏猫腻,小编详细说明崇阳...
黑科技辅助挂!wepoker买... 黑科技辅助挂!wepoker买脚本靠谱吗,情怀七喜游戏辅助,法门教程(有挂方法)1、每一步都需要思考...
方法辅助挂!aapoker怎么... 方法辅助挂!aapoker怎么设置提高好牌几率,蘑菇云辅助使用视频,绝活儿教程(讲解有挂)1、完成蘑...