1. 程式人生 > >騰訊雲視訊點播怎麼在web客戶端上傳視訊

騰訊雲視訊點播怎麼在web客戶端上傳視訊

首先,騰訊雲的文件已經說的很清楚了,一定要認真看完: 騰訊雲客戶端上傳文件

以下是我實現功能中碰到的問題:

  • 如何通過js獲取input file 的物件
  • 如何指定上傳後的視訊自動轉碼和截圖等任務流
  • 如何在上傳時指定檔案分類和檔名
  • 如何取消上傳

如何通過js獲取input file 的物件

html

<input type="file" name="videoFile" />

js

var videoFile = $("input[name='videoFile']")[0]['files'][0];

如何指定上傳後的視訊自動轉碼和截圖等任務流

可以在ajax獲取簽名時,在簽名形成前的引數中指定,具體可以檢視文件說明:

上傳時指定任務流

"procedure" => "QCVB_SimpleProcessFile(1,1,10,10)"

// 1: 預設模板轉碼 2: 預設模板水印 10: 採用id=10的取樣截圖方案 10: 採用id=10的雪碧圖方案

如何上傳的同時指定檔案分類和檔名

指定檔案分類

檔案分類在文件中找到了方法,同樣是可以在簽名的引數中指定,但是注意,簽名的有效期是1天,如果上傳的檔案分類不一樣,你需要生成新的簽名

"classId" => 分類名

這裡的id是視訊分類的代號,貌似從控制檯是無法看到的,我是呼叫服務端api,然後拉取所有分類,就能看到對應的id

指定檔名

這個是無法從文件上找到的,諮詢了工單後,可以在js中指定,只不過文件的例子中沒有標明

qcVideo.ugcUploader.start({
	videoName: 視訊名,
	videoFile: videoFile,
	getSignature: getSignature,

如何取消上傳

直接檢視文件就可以啦,注意下那兩個引數,需要是全域性變數,因為我們肯定是按鍵觸發取消,所以需要在兩個區域性函式中使用這兩個變數

騰訊雲文件

//用於實現取消上傳的兩個物件。
var uploadCos;//需要在 progress 回撥中賦值。
var uploadTaskId;//需要在 progress 回撥中賦值。

upload: function(){
	qcVideo.ugcUploader.start({
	    videoFile: videoFile,//這個是視訊,型別為 File
	    getSignature: getSignature,//這個是第二步定義的函式
	    error: function(result){
	        console.log('上傳失敗的原因:' + result.msg);
	    },
	    progress: function(result){
	        console.log('上傳進度的檔案型別:' + result.type);
	        console.log('上傳進度的檔名稱:' + result.name);
	        console.log('上傳進度:' + result.curr);
	        uploadCos = result.cos;
	        uploadTaskId = result.taskId;
	    },
	    finish: function(result){
	        console.log('上傳結果的 fileId:' + result.fileId);
	        console.log('上傳結果的視訊名稱:' + result.videoName);
	        console.log('上傳結果的視訊地址:' + result.videoUrl);
	    }
	});
},

// 取消上傳
cancle:function(){
	qcVideo.ugcUploader.cancel({
	    cos: uploadCos,   
	    taskId: uploadTaskId
	});
	// 你也可以在這裡清空上傳進度條之類的
}

檔案上傳,肯定要製作一個進度條,來顯示告訴使用者進度,文件中也有說明啦,自己去看,很簡單的做法,返回的是浮點小數,需要轉換

哦啦