uniapp app 安卓uni.getvideoinfo没反应是什么原因

在uniapp开发的安卓APP中,调用uni.getVideoInfo()方法没有任何反应,既没有返回数据也没有报错。请问可能是什么原因导致的?需要检查哪些配置或权限?是否和安卓版本或机型有关?

2 回复

可能原因:

  1. 文件路径错误,确保视频文件存在
  2. 仅支持本地视频,不支持网络视频
  3. 安卓版本兼容性问题
  4. 视频格式不支持
  5. 权限未开启

建议:检查文件路径、确认视频格式、测试不同安卓版本。


在UniApp中,uni.getVideoInfo 方法在安卓端无响应,通常由以下原因导致:

  1. 文件路径问题
    确保传入的 src 为有效的本地文件路径(如 _www/_doc/ 目录)。不支持网络URL或不正确路径。

    // 示例:正确使用本地路径
    uni.getVideoInfo({
      src: '_www/video/test.mp4',
      success: (res) => {
        console.log('视频信息:', res);
      },
      fail: (err) => {
        console.error('获取失败:', err);
      }
    });
    
  2. 文件格式兼容性
    安卓设备对视频编码格式(如H.264)和容器(如MP4)有要求。不支持的格式可能导致方法无响应。

  3. 权限配置缺失
    manifest.json 中确保已添加必要的存储权限:

    "permissions": {
      "android": {
        "requestPermissions": ["READ_EXTERNAL_STORAGE", "WRITE_EXTERNAL_STORAGE"]
      }
    }
    
  4. 路径协议错误
    使用 plus.io.convertLocalFileSystemURL() 将平台路径转换为可识别的本地URL:

    const localPath = plus.io.convertLocalFileSystemURL('_www/video/test.mp4');
    
  5. 异步处理问题
    确保在文件已完整下载或创建后调用方法,避免文件未就绪。

排查步骤

  • 检查控制台是否有错误日志。
  • 使用绝对路径并确认文件存在。
  • 测试不同格式的视频文件。
  • 在真机调试中确认权限已授予。

若问题持续,尝试使用 uni.chooseVideo 选择视频后获取信息,或检查HBuilderX版本及插件兼容性。

回到顶部