uni-app中uni.getVideoInfo在安卓下不执行

uni-app中uni.getVideoInfo在安卓下不执行

开发环境 版本号 项目创建方式
Windows WIN10 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:WIN10

HBuilderX类型:Alpha

HBuilderX版本号:3.4.5

手机系统:Android

手机系统版本号:Android 12

手机厂商:华为

手机机型:Mate30

页面类型:vue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX

### 示例代码:

```javascript
uni.chooseVideo({  
    sourceType: ['camera', 'album'],  
    success: function (res) {  
        uni.getVideoInfo ({  
            src:res.tempFilePath,  
            success:function(res){  
                console.log(res)  
            },  
            fail:function(err){  
                console.log(err)  
            }  
        })  
    }  
});

操作步骤:

uni.chooseVideo({  
    sourceType: ['camera', 'album'],  
    success: function (res) {  
        uni.getVideoInfo ({  
            src:res.tempFilePath,  
            success:function(res){  
                console.log(res)  
            },  
            fail:function(err){  
                console.log(err)  
            }  
        })  
    }  
});

预期结果:

和文档一致

实际结果:

IOS下正常。
ANDROID下,
uni.getVideoInfo  两个的sucessfail均未执行。

bug描述:

正式版和测试版的HBUILDER均尝试过使用云端打包,最终在IOS下能正确返回信息,而安卓下无法返回信息(完全不执行)

4 回复

未复现此问题,仅这个设备出现问题吗?其他设备是否正常?


发现问题所在了,今天把相关的代码抽离出来测试,发现是使用网络地址的情况下导致的。 ios使用网络地址除了size其余有返回。android下使用网络地址fail和complete等都没触发。

回复 1***@qq.com: 不支持网络地址

uni-app 中使用 uni.getVideoInfo 获取视频信息时,如果在安卓设备上不执行,可能是由于以下几个原因导致的。你可以按照以下步骤进行排查和解决:

1. 检查 API 支持情况

uni.getVideoInfouni-app 提供的一个 API,用于获取视频文件的基本信息。首先,确保你使用的 uni-app 版本支持该 API,并且该 API 在安卓平台上是可用的。

2. 检查权限

在安卓设备上,访问文件系统可能需要特定的权限。确保你的应用已经获取了必要的权限,例如:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

你可以在 manifest.json 中配置这些权限:

{
  "app-plus": {
    "distribute": {
      "android": {
        "permissions": [
          "READ_EXTERNAL_STORAGE",
          "WRITE_EXTERNAL_STORAGE"
        ]
      }
    }
  }
}

3. 检查文件路径

uni.getVideoInfo 需要传入视频文件的路径。确保你传入的路径是正确的,并且文件确实存在。你可以使用 uni.chooseVideo 选择视频文件,然后获取其路径。

uni.chooseVideo({
  success: (res) => {
    const tempFilePath = res.tempFilePath;
    uni.getVideoInfo({
      src: tempFilePath,
      success: (info) => {
        console.log('视频信息:', info);
      },
      fail: (err) => {
        console.error('获取视频信息失败:', err);
      }
    });
  }
});

4. 检查回调函数

确保你正确使用了 successfail 回调函数,并且在回调函数中处理了可能的错误。

5. 调试和日志

在开发过程中,可以使用 console.loguni.showToast 来输出调试信息,帮助你定位问题。

uni.getVideoInfo({
  src: 'path/to/video.mp4',
  success: (info) => {
    console.log('视频信息:', info);
  },
  fail: (err) => {
    console.error('获取视频信息失败:', err);
    uni.showToast({
      title: '获取视频信息失败',
      icon: 'none'
    });
  }
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!