uni-app uni.chooseVideo 选择文件后卡住 安卓平台 华为P30 Pro
uni-app uni.chooseVideo 选择文件后卡住 安卓平台 华为P30 Pro
示例代码:
const res = await uni.chooseVideo({
sourceType: ['album'],
});
console.log(res);
操作步骤:
执行uni.chooseVideo ,出现文件列表,选择文件后,点击左上角“完成”,出现正在加载,然后卡住了。
预期结果:
希望选择完文件后,能正常返回结果。最后可以拿结果中的路径,进行视频播放。
实际结果:
执行uni.chooseVideo ,出现文件列表,选择文件后,点击左上角“完成”,出现正在加载,然后卡住了。
bug描述:
const res = await uni.chooseVideo({
sourceType: ['album'],
});
console.log(res);
执行uni.chooseVideo ,出现文件列表,选择文件后,点击左上角“完成”,出现正在加载,然后卡住了。如图:
可以返回。
试了官方的演示示例APP,也是有这个问题。
更多关于uni-app uni.chooseVideo 选择文件后卡住 安卓平台 华为P30 Pro的实战教程也可以访问 https://www.itying.com/category-93-b0.html
兄弟,把这个改成false就可以了,安卓10以下不能压缩视屏,包括uniapp的压缩视频方法,总之坑爹啊
更多关于uni-app uni.chooseVideo 选择文件后卡住 安卓平台 华为P30 Pro的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在使用 uni.chooseVideo
选择视频文件时,如果遇到卡住的情况,尤其是在华为 P30 Pro 这样的安卓设备上,可能是由多种原因引起的。以下是一些可能的原因和解决方法:
1. 权限问题
确保应用已经获取了必要的权限,尤其是存储权限。可以在 manifest.json
中配置权限,并在运行时动态请求权限。
{
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
},
"scope.writePhotosAlbum": {
"desc": "你的相册将用于保存图片和视频"
}
}
}
在代码中动态请求权限:
uni.authorize({
scope: 'scope.writePhotosAlbum',
success() {
console.log('授权成功');
},
fail() {
console.log('授权失败');
}
});
2. 文件系统问题
华为 P30 Pro 可能对文件系统的访问有一些限制,尤其是在选择较大的视频文件时。可以尝试选择较小的视频文件,或者检查文件系统是否有异常。
3. 兼容性问题
某些安卓设备可能存在兼容性问题。可以尝试更新 uni-app
框架到最新版本,或者检查是否有相关的 bug 修复。
4. 调试与日志
在开发过程中,可以通过 console.log
或 uni.getSystemInfo
来获取更多信息,帮助定位问题。
uni.getSystemInfo({
success(res) {
console.log(res);
}
});
5. 使用 uni.chooseMedia
替代
如果 uni.chooseVideo
无法正常工作,可以尝试使用 uni.chooseMedia
,它支持选择图片和视频。
uni.chooseMedia({
count: 1,
mediaType: ['video'],
sourceType: ['album', 'camera'],
success(res) {
console.log(res.tempFiles[0].tempFilePath);
},
fail(err) {
console.log(err);
}
});
6. 检查设备存储空间
确保设备有足够的存储空间来处理和保存选择的视频文件。
7. 重启设备
有时候,设备长时间运行后可能会出现一些临时性问题,重启设备可能会解决问题。
8. 更新设备系统
确保设备的系统是最新的,系统更新可能会修复一些已知的问题。
9. 联系官方支持
如果以上方法都无法解决问题,可以联系 uni-app
官方支持,或者在社区中寻求帮助。
示例代码
以下是一个完整的 uni.chooseVideo
示例代码:
uni.chooseVideo({
sourceType: ['album', 'camera'],
maxDuration: 60,
camera: 'back',
success(res) {
console.log(res.tempFilePath);
},
fail(err) {
console.log(err);
}
});