lrj
2 天以前 9f8395fab13ca4b230a0f7d62636e209745c91d4
web/src/api/media.js
@@ -111,3 +111,44 @@
  
  return result;
};
// 上传视频文件并自动生成缩略图
export const uploadVideoWithThumbnail = async (videoFile) => {
  const { extractVideoFrame, generateThumbnailFileName } = await import('@/utils/video.js');
  try {
    console.log('开始处理视频文件:', videoFile.name);
    // 1. 上传原视频文件
    console.log('上传视频文件...');
    const videoUploadResult = await uploadFile(videoFile);
    console.log('视频上传成功:', videoUploadResult);
    // 2. 提取视频第一帧
    console.log('提取视频第一帧...');
    const thumbnailBlob = await extractVideoFrame(videoFile);
    console.log('视频帧提取成功,大小:', thumbnailBlob.size);
    // 3. 创建缩略图文件对象
    const thumbnailFileName = generateThumbnailFileName(videoFile.name);
    const thumbnailFile = new File([thumbnailBlob], thumbnailFileName, {
      type: 'image/jpeg'
    });
    // 4. 上传缩略图
    console.log('上传缩略图...');
    const thumbnailUploadResult = await uploadFile(thumbnailFile);
    console.log('缩略图上传成功:', thumbnailUploadResult);
    // 5. 返回包含视频和缩略图信息的结果
    return {
      video: videoUploadResult,
      thumbnail: thumbnailUploadResult,
      success: true
    };
  } catch (error) {
    console.error('视频处理失败:', error);
    throw new Error(`视频处理失败: ${error.message}`);
  }
};