uni-app uni.chooseVideo拍摄视频返回参数name后缀错误为jpg

uni-app uni.chooseVideo拍摄视频返回参数name后缀错误为jpg

使用的是中兴天机A41 Ultra 5G手机 型号ZTE A2023H

图像

2 回复

这个问题直接导致视频无法上传


在使用 uni.chooseVideo 方法拍摄视频时,返回的文件名后缀错误为 .jpg 而不是 .mp4 或其他视频格式的情况,可能是由于某些特定环境或平台下的 bug 导致的。以下是一些可能的解决方案和排查步骤:

1. 检查平台和版本

首先,确认你使用的 uni-app 版本和目标平台(如微信小程序、H5、App等)。某些平台或版本可能存在已知的 bug,建议更新到最新的 uni-app 版本,并检查是否有相关的修复。

2. 手动修正文件后缀

如果返回的文件名后缀错误,可以在代码中手动修正。例如:

uni.chooseVideo({
  sourceType: ['camera'],
  success(res) {
    let tempFilePath = res.tempFilePath;
    if (tempFilePath.endsWith('.jpg')) {
      tempFilePath = tempFilePath.replace('.jpg', '.mp4');
    }
    console.log('视频临时路径:', tempFilePath);
    // 处理视频文件
  },
  fail(err) {
    console.error('选择视频失败:', err);
  }
});

3. 使用 uni.getFileInfo 获取文件信息

你可以使用 uni.getFileInfo 方法获取文件的详细信息,包括文件的 MIME 类型,从而判断文件的真实类型并修正后缀。

uni.chooseVideo({
  sourceType: ['camera'],
  success(res) {
    let tempFilePath = res.tempFilePath;
    uni.getFileInfo({
      filePath: tempFilePath,
      success(fileInfo) {
        console.log('文件信息:', fileInfo);
        if (fileInfo.mimeType.includes('video')) {
          // 确保文件后缀正确
          if (!tempFilePath.endsWith('.mp4')) {
            tempFilePath = tempFilePath.replace('.jpg', '.mp4');
          }
        }
        console.log('视频临时路径:', tempFilePath);
        // 处理视频文件
      },
      fail(err) {
        console.error('获取文件信息失败:', err);
      }
    });
  },
  fail(err) {
    console.error('选择视频失败:', err);
  }
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!