uniapp 选择相册视频时出现加载中如何解决

“在uniapp中选择相册视频时,界面一直显示‘加载中’无法正常使用,如何解决这个问题?尝试过重启应用和更换手机测试依然存在。”

2 回复

检查网络连接,确保稳定。若问题持续,尝试清理应用缓存或重启应用。可能是系统权限未开启,检查相册访问权限。若仍无法解决,更新UniApp版本或检查插件兼容性。


在UniApp中选择相册视频时出现“加载中”提示,通常是由于系统权限、文件处理耗时或代码逻辑问题导致。以下是常见解决方案:


1. 检查相册权限

确保应用已获得相册访问权限:

  • Android:在 manifest.json 中配置权限:
    {
      "permissions": [
        "android.permission.READ_EXTERNAL_STORAGE"
      ]
    }
    
  • iOS:在 manifest.json 中添加:
    {
      "ios": {
        "privacyDescription": {
          "NSPhotoLibraryUsageDescription": "需要访问相册以选择视频"
        }
      }
    }
    
    注意:iOS需在真机测试,模拟器无法调用相册。

2. 优化文件选择代码

使用 uni.chooseVideouni.chooseMedia 时,检查参数是否合理:

uni.chooseVideo({
  sourceType: ['album'], // 仅从相册选择
  maxDuration: 60, // 限制视频时长(秒)
  success: (res) => {
    console.log('视频路径:', res.tempFilePath);
  },
  fail: (err) => {
    console.error('选择失败:', err);
  }
});

参数说明

  • compressed: false 可跳过压缩(但部分平台强制压缩)。
  • 避免同时选择过多文件或过大视频。

3. 处理大文件加载

  • 视频过大时系统需时间生成预览,可添加加载提示:
    uni.showLoading({ title: '处理中...' });
    uni.chooseVideo({
      success: (res) => {
        uni.hideLoading();
        // 处理视频
      },
      fail: () => uni.hideLoading()
    });
    

4. 平台差异处理

  • Android:部分机型对相册路径解析较慢,可尝试用 uni.chooseMedia(HBuilderX 3.1.0+):
    uni.chooseMedia({
      count: 1,
      mediaType: ['video'],
      success: (res) => {
        console.log(res.tempFiles[0].tempFilePath);
      }
    });
    
  • iOS:确保视频格式为兼容格式(如MP4)。

5. 排查环境问题

  • 使用真机调试,模拟器可能无法正常调用相册。
  • 更新HBuilderX至最新版本,避免已知BUG。

总结步骤:

  1. 确认权限并真机测试。
  2. 简化选择参数,避免处理过大文件。
  3. 添加加载提示改善用户体验。
  4. 根据平台使用推荐API(如 uni.chooseMedia)。

若问题持续,检查控制台错误日志或尝试更换手机测试。

回到顶部