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 两个的sucess、fail均未执行。
bug描述:
正式版和测试版的HBUILDER均尝试过使用云端打包,最终在IOS下能正确返回信息,而安卓下无法返回信息(完全不执行)
未复现此问题,仅这个设备出现问题吗?其他设备是否正常?
发现问题所在了,今天把相关的代码抽离出来测试,发现是使用网络地址的情况下导致的。 ios使用网络地址除了size其余有返回。android下使用网络地址fail和complete等都没触发。
回复 1***@qq.com: 不支持网络地址
在 uni-app
中使用 uni.getVideoInfo
获取视频信息时,如果在安卓设备上不执行,可能是由于以下几个原因导致的。你可以按照以下步骤进行排查和解决:
1. 检查 API 支持情况
uni.getVideoInfo
是 uni-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. 检查回调函数
确保你正确使用了 success
和 fail
回调函数,并且在回调函数中处理了可能的错误。
5. 调试和日志
在开发过程中,可以使用 console.log
或 uni.showToast
来输出调试信息,帮助你定位问题。
uni.getVideoInfo({
src: 'path/to/video.mp4',
success: (info) => {
console.log('视频信息:', info);
},
fail: (err) => {
console.error('获取视频信息失败:', err);
uni.showToast({
title: '获取视频信息失败',
icon: 'none'
});
}
});