提交 e261637c 编写于 作者: inkwalk's avatar inkwalk

feat(App): compressVideo

上级 14f3378e
......@@ -54,6 +54,7 @@ export * from './protocols/media/saveImageToPhotosAlbum'
export * from './protocols/media/saveVideoToPhotosAlbum'
export * from './protocols/media/getRecorderManager'
export * from './protocols/media/compressImage'
export * from './protocols/media/compressVideo'
export * from './protocols/network/request'
export * from './protocols/network/downloadFile'
......
import { getRealPath } from '@dcloudio/uni-platform'
export const API_COMPRESS_VIDEO = 'compressVideo'
export type API_TYPE_COMPRESS_VIDEO = typeof uni.compressVideo
export const CompressVideoOptions: ApiOptions<API_TYPE_COMPRESS_VIDEO> = {
formatArgs: {
src(src, params) {
params.src = getRealPath(src)
},
},
}
export const CompressVideoProtocol: ApiProtocol<API_TYPE_COMPRESS_VIDEO> = {
src: {
type: String,
required: true,
},
quality: String as any,
bitrate: Number,
fps: Number,
resolution: Number,
}
......@@ -18,6 +18,7 @@ export * from './media/getRecorderManager'
export * from './media/saveVideoToPhotosAlbum'
export * from './media/saveImageToPhotosAlbum'
export * from './media/compressImage'
export * from './media/compressVideo'
export * from './keyboard/keyboard'
......
import { extend } from '@vue/shared'
import { getFileName } from '../../../helpers/file'
import { TEMP_PATH } from '../constants'
import {
API_COMPRESS_VIDEO,
API_TYPE_COMPRESS_VIDEO,
defineAsyncApi,
CompressVideoOptions,
CompressVideoProtocol,
} from '@dcloudio/uni-api'
export const compressVideo = defineAsyncApi<API_TYPE_COMPRESS_VIDEO>(
API_COMPRESS_VIDEO,
(options, { resolve, reject }) => {
const dst = `${TEMP_PATH}/compressed/${Date.now()}_${getFileName(
options.src
)}`
plus.zip.compressVideo(
extend({}, options, {
dst,
}),
() => {
resolve({
tempFilePath: dst,
})
},
reject
)
},
CompressVideoProtocol,
CompressVideoOptions
)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册