視頻剪輯Web端除了提供視頻剪輯Web SDK最基本的功能,您可以根據實際需求在此基礎上擴展。通過閱讀本文,您可以了解Web SDK的擴展功能示例。
目錄
動態獲取視頻剪輯Web SDK的版本號 | 自定義字幕默認文字 |
自定義按鈕文案 | 修改默認預覽畫布比例 |
主動獲取Timeline數據 | 自定義返回按鈕 |
自定義Logo | 自定義媒資導入界面 |
自定義合成導出界面 | - |
擴展功能示例
以下提供常用擴展功能的示例:
動態獲取視頻剪輯Web SDK的版本號
如果代碼中需要使用視頻剪輯Web SDK的版本號,建議動態獲取。
window.AliyunVideoEditor.version
自定義字幕默認文字
添加字幕時,默認字幕內容為“阿里云剪輯”,可以通過傳入參數defaultSubtitleText
自定義默認字幕內容(字幕長度不超過20)。
window.AliyunVideoEditor.init({
// 其他選項省略
defaultSubtitleText: '自定義字幕默認文字'
})
自定義按鈕文案
視頻剪輯界面的導入素材、保存和導出視頻按鈕支持自定義文案,可以通過傳入參數customTexts
實現。
window.AliyunVideoEditor.init({
// 其他選項省略
customTexts: {
importButton: '自定義導入',
updateButton: '自定義保存',
produceButton: '自定義生成'
}
})
修改默認預覽畫布比例
默認預覽畫布比例為16∶9,可以通過傳入參數defaultAspectRatio
自定義默認預覽畫布比例。支持的畫布比例請參見PlayerAspectRatio。
window.AliyunVideoEditor.init({
// 其他選項省略
defaultAspectRatio: '9:16'
})
主動獲取Timeline數據
主動獲取Timeline數據后,如果對其數據進行修改,必須保證Timeline正確性,避免調用服務端接口出錯。
window.AliyunVideoEditor.getProjectTimeline()
自定義返回按鈕
默認視頻剪輯界面左上角沒有返回按鈕,可以通過實現響應函數onBackButtonClick
自定義單擊返回按鈕之后的邏輯。
window.AliyunVideoEditor.init({
// 其他選項省略
onBackButtonClick: () => {
window.location.href = '/mediaEdit/list'; // 點擊后跳轉到其他頁面,如工程列表頁
}
})
自定義Logo
默認視頻剪輯界面左上角沒有Logo圖標,可以通過傳入參數customTexts
自定義Logo圖標。
window.AliyunVideoEditor.init({
// 其他選項省略
customTexts: {
logoUrl: 'https://www.example.com/assets/example-logo-url.png'
}
})
自定義媒資導入界面
單擊導入素材按鈕后,可以通過實現函數searchMedia
添加媒資導入界面。實現邏輯:搜索媒資信息后將媒資庫媒資導入到素材,再調用AddEditingProjectMaterials接口將選中的素材與工程關聯起來,返回的Promise對象需要resolve新增素材的數組。
自定義合成導出界面
單擊導出視頻按鈕后,可以通過實現函數produceEditingProjectVideo
添加合成導出界面。實現邏輯:調出配置合成參數頁面后,該頁面上的提交按鈕的消息響應為提交剪輯合成作業接口ProduceEditingProjectVideo - 視頻合成,返回的Promise對象需要resolve。
除了實現上述功能外,函數produceEditingProjectVideo
也可以固定合成參數(例如:存儲的Bucket、視頻格式等),阻止他人隨意修改,或在導出視頻前對Timeline進行業務層面的校驗。示例如下所示:
window.AliyunVideoEditor.init({
// 省略其他選項
produceEditingProjectVideo: ({ timeline }) => { // 用戶點擊“導出視頻”按鈕時該方法會被調用
// 找出類型為字幕且軌道內片段數大于 0 的所有軌道
const subtitleTracks = timeline.VideoTracks.filter((t) => t.Type === 'Subtitle' && t.VideoTrackClips.length > 0);
if (subtitleTracks.length < 2) {
// 滿足要求的軌道數量小于 2,報錯提示并直接 return
console.error('非空字幕軌道數量小于 2');
return;
} else {
// 滿足要求,省略后續對服務端發起合成請求的步驟
}
},
});