uni-app掌玩mini平板uni.chooseVideo一直返回fail
uni-app掌玩mini平板uni.chooseVideo一直返回fail
信息类别 | 详细信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | Windows10 |
HBuilderX类型 | Alpha |
HBuilderX版本号 | 4.06 |
手机系统 | Android |
手机系统版本号 | Android 13 |
手机厂商 | 酷比 |
手机机型 | Zhangwanmini |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
示例代码:
let obj = {
sourceType: ['album', 'camera']
}
console.log("this.maxDuration == null ||this.maxDuration == undefined: ", this.maxDuration == null ||
this.maxDuration == undefined);
let maxDuration = this.maxDuration ? this.maxDuration : 60
let minDuration = this.minDuration ? this.minDuration : 1
if (maxDuration && maxDuration <= 60 && minDuration <= 60) {
obj.maxDuration = maxDuration
}
if (minDuration && minDuration > 60) {
obj.sourceType = ['album']
}
console.log('obj: ',obj);
uni.chooseVideo({
...obj,
compressed: this.compressVideo,
success: async (res) => {
console.log(res);
console.log("this.maxDuration: ", this.maxDuration);
if (maxDuration && (res.duration > parseInt(maxDuration + 1) || res.duration <= parseInt(minDuration))) {
if (this.minDuration > 0) {
_this.$tip.toast('视频时长最小' + minDuration + 's,视频时长最大' + maxDuration + 's')
} else {
_this.$tip.toast('视频时长最大' + maxDuration + 's')
}
return
}
// uni.showLoading({
// title: '正在上传视频'
// })
let result = ''
result = await _this.uploadFile(res.tempFilePath)
_this.fileList.push(result)
uni.hideLoading()
},
fail(e) {
console.log(e);
// _this.$tip.toast(e.errMsg)
}
})
操作步骤:
- 拍摄完,点确定就进入fail
预期结果:
- 拍摄完,点确定就进入success
实际结果:
- 拍摄完,点确定就进入fail
bug描述:
- 拍摄完,点确定就进入fail
更多关于uni-app掌玩mini平板uni.chooseVideo一直返回fail的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
{
“errMsg”: “chooseVideo:fail null”,
“errCode”: -99,
“code”: -99
}
更多关于uni-app掌玩mini平板uni.chooseVideo一直返回fail的实战教程也可以访问 https://www.itying.com/category-93-b0.html
蹲一个,相同问题
在使用 uni-app
开发时,如果你在掌玩 Mini 平板上调用 uni.chooseVideo
方法时一直返回 fail
,可能有以下几个原因和解决方法:
1. 权限问题
- 原因:应用可能没有获取摄像头或存储权限。
- 解决方法:确保在
manifest.json
中正确配置了相关权限,并且在运行时请求了相应的权限。
{
"mp-weixin": {
"permission": {
"scope.camera": {
"desc": "需要使用摄像头"
},
"scope.writePhotosAlbum": {
"desc": "需要写入相册"
}
}
}
}
在代码中,你可以使用 uni.authorize
方法请求权限:
uni.authorize({
scope: 'scope.camera',
success() {
uni.chooseVideo({
success(res) {
console.log('视频路径:', res.tempFilePath);
},
fail(err) {
console.error('选择视频失败:', err);
}
});
},
fail() {
console.error('授权失败');
}
});
2. 设备不支持
- 原因:掌玩 Mini 平板可能不支持
uni.chooseVideo
方法,或者设备本身不支持视频录制。 - 解决方法:检查设备的兼容性,或者使用其他方法(如
uni.chooseImage
)来代替。
3. API 调用错误
- 原因:
uni.chooseVideo
的参数可能配置不正确。 - 解决方法:确保你正确配置了
uni.chooseVideo
的参数。
uni.chooseVideo({
sourceType: ['camera', 'album'],
maxDuration: 60,
camera: 'back',
success(res) {
console.log('视频路径:', res.tempFilePath);
},
fail(err) {
console.error('选择视频失败:', err);
}
});
4. 系统或框架问题
- 原因:可能是
uni-app
框架或掌玩 Mini 平板的系统存在兼容性问题。 - 解决方法:尝试更新
uni-app
框架到最新版本,或者检查是否有相关的 Bug 反馈。如果问题依然存在,可以尝试在官方社区或 GitHub 上提交 Issue。
5. 调试与日志
- 原因:
fail
回调中的错误信息可能不够详细。 - 解决方法:在
fail
回调中打印详细的错误信息,以便更好地定位问题。
uni.chooseVideo({
sourceType: ['camera', 'album'],
maxDuration: 60,
camera: 'back',
success(res) {
console.log('视频路径:', res.tempFilePath);
},
fail(err) {
console.error('选择视频失败:', JSON.stringify(err));
}
});