From 1c5f9bc0f0ac5a72adef5851335286b72408b285 Mon Sep 17 00:00:00 2001 From: qiang Date: Tue, 23 Mar 2021 12:05:40 +0800 Subject: [PATCH] feat(app): uni.compressVideo --- lib/apis.js | 1 + lib/modules.json | 1 + .../helpers/protocol/media/compress-video.js | 23 +++++++++++++++++++ src/platforms/app-plus/service/api/index.js | 1 + .../service/api/media/compress-video.js | 18 +++++++++++++++ 5 files changed, 44 insertions(+) create mode 100644 src/core/helpers/protocol/media/compress-video.js create mode 100644 src/platforms/app-plus/service/api/media/compress-video.js diff --git a/lib/apis.js b/lib/apis.js index 1ee829e04..6560cab4c 100644 --- a/lib/apis.js +++ b/lib/apis.js @@ -54,6 +54,7 @@ const media = [ 'getImageInfo', 'saveImageToPhotosAlbum', 'compressImage', + 'compressVideo', 'getRecorderManager', 'getBackgroundAudioManager', 'createAudioContext', diff --git a/lib/modules.json b/lib/modules.json index ef5153b6b..38f9e460f 100644 --- a/lib/modules.json +++ b/lib/modules.json @@ -60,6 +60,7 @@ "uni.getImageInfo": true, "uni.saveImageToPhotosAlbum": true, "uni.compressImage": true, + "uni.compressVideo": true, "uni.getRecorderManager": true, "uni.getBackgroundAudioManager": true, "uni.createInnerAudioContext": true, diff --git a/src/core/helpers/protocol/media/compress-video.js b/src/core/helpers/protocol/media/compress-video.js new file mode 100644 index 000000000..ab660f841 --- /dev/null +++ b/src/core/helpers/protocol/media/compress-video.js @@ -0,0 +1,23 @@ +import getRealPath from 'uni-platform/helpers/get-real-path' + +export const compressVideo = { + src: { + type: String, + required: true, + validator (src, params) { + params.src = getRealPath(src) + } + }, + quality: { + type: String + }, + bitrate: { + type: Number + }, + fps: { + type: Number + }, + resolution: { + type: Number + } +} diff --git a/src/platforms/app-plus/service/api/index.js b/src/platforms/app-plus/service/api/index.js index d192cc0c0..4e38361c7 100644 --- a/src/platforms/app-plus/service/api/index.js +++ b/src/platforms/app-plus/service/api/index.js @@ -30,6 +30,7 @@ export * from './media/audio' export * from './media/choose-image' export * from './media/choose-video' export * from './media/compress-image' +export * from './media/compress-video' export * from './media/get-image-info' export * from './media/preview-image' export * from './media/recorder' diff --git a/src/platforms/app-plus/service/api/media/compress-video.js b/src/platforms/app-plus/service/api/media/compress-video.js new file mode 100644 index 000000000..bc72ade56 --- /dev/null +++ b/src/platforms/app-plus/service/api/media/compress-video.js @@ -0,0 +1,18 @@ +import { + TEMP_PATH +} from '../constants' + +import { + warpPlusSuccessCallback, + warpPlusErrorCallback, + getFileName +} from '../util' + +export function compressVideo (options, callbackId) { + const dst = `${TEMP_PATH}/compressed/${Date.now()}_${getFileName(options.src)}` + const successCallback = warpPlusSuccessCallback(callbackId, 'compressVideo') + const errorCallback = warpPlusErrorCallback(callbackId, 'compressVideo') + plus.zip.compressVideo(Object.assign({}, options, { + dst + }), successCallback, errorCallback) +} -- GitLab