feat: 上传视频首帧
This commit is contained in:
parent
19ed3bba52
commit
b0fde981e6
@ -283,7 +283,37 @@ const checkMediaLibraryPermission = async (): Promise<{ hasPermission: boolean,
|
|||||||
return { hasPermission: false };
|
return { hasPermission: false };
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
// 提取视频的首帧进行压缩并上传
|
||||||
|
const uploadVideoThumbnail = async (asset: ExtendedAsset) => {
|
||||||
|
try {
|
||||||
|
const manipResult = await compressImage(asset.uri);
|
||||||
|
const response = await fetch(manipResult.uri);
|
||||||
|
const blob = await response.blob();
|
||||||
|
const filename = asset.filename ?
|
||||||
|
`compressed_${asset.filename}` :
|
||||||
|
`image_${Date.now()}_compressed.jpg`;
|
||||||
|
const compressedFile = new File([blob], filename, { type: 'image/jpeg' });
|
||||||
|
|
||||||
|
const { upload_url, file_id } = await getUploadUrl(compressedFile, {
|
||||||
|
originalUri: asset.uri,
|
||||||
|
creationTime: asset.creationTime,
|
||||||
|
mediaType: 'image',
|
||||||
|
isCompressed: true
|
||||||
|
});
|
||||||
|
|
||||||
|
await uploadFile(compressedFile, upload_url);
|
||||||
|
await confirmUpload(file_id);
|
||||||
|
|
||||||
|
console.log('视频首帧文件上传成功:', {
|
||||||
|
fileId: file_id,
|
||||||
|
filename: compressedFile.name,
|
||||||
|
type: compressedFile.type
|
||||||
|
});
|
||||||
|
return { success: true, file_id };
|
||||||
|
} catch (error) {
|
||||||
|
return { success: false, error };
|
||||||
|
}
|
||||||
|
};
|
||||||
// 处理单个媒体文件上传
|
// 处理单个媒体文件上传
|
||||||
const processMediaUpload = async (asset: ExtendedAsset) => {
|
const processMediaUpload = async (asset: ExtendedAsset) => {
|
||||||
try {
|
try {
|
||||||
@ -432,11 +462,13 @@ const processMediaUpload = async (asset: ExtendedAsset) => {
|
|||||||
let compressedResult = { success: true, file_id: null };
|
let compressedResult = { success: true, file_id: null };
|
||||||
if (!isVideo) {
|
if (!isVideo) {
|
||||||
compressedResult = await uploadCompressedFile();
|
compressedResult = await uploadCompressedFile();
|
||||||
|
// 添加素材
|
||||||
|
addMaterial(originalResult.file_id, compressedResult?.file_id || '');
|
||||||
|
} else {
|
||||||
|
// 上传压缩首帧
|
||||||
|
uploadVideoThumbnail(asset)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加素材
|
|
||||||
addMaterial(originalResult.file_id, compressedResult?.file_id || '');
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
originalSuccess: originalResult.success,
|
originalSuccess: originalResult.success,
|
||||||
compressedSuccess: compressedResult.success,
|
compressedSuccess: compressedResult.success,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user