騰訊雲視訊點播怎麼在web客戶端上傳視訊
阿新 • • 發佈:2018-12-12
首先,騰訊雲的文件已經說的很清楚了,一定要認真看完: 騰訊雲客戶端上傳文件
以下是我實現功能中碰到的問題:
- 如何通過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 }); // 你也可以在這裡清空上傳進度條之類的 }
檔案上傳,肯定要製作一個進度條,來顯示告訴使用者進度,文件中也有說明啦,自己去看,很簡單的做法,返回的是浮點小數,需要轉換
哦啦