uni-app uni.chooseVideo二次调用触发fail回调
uni-app uni.chooseVideo二次调用触发fail回调
操作步骤:
运行hello-uniapp-master项目,接口-媒体-视频,视频来源选择拍摄,调整代码让添加视频按钮一直存在,在第一次拍摄视频是正常的,第二次点击添加视频,uni.chooseVideo就触发fail回调了
预期结果:
多次添加视频都要能正常触发uni.chooseVideo的success回调
实际结果:
多次添加视频会触发uni.chooseVideo的fail回调
bug描述:
运行hello-uniapp-master项目,接口-媒体-视频,视频来源选择拍摄,我调整代码让添加视频按钮一直存在,在第一次拍摄视频是正常的,第二次点击添加视频,uni.chooseVideo就触发fail回调了,没办法正常拍摄。
| 开发环境 | 版本号 | 项目创建方式 |
|----------------|----------------|--------------|
| PC | Windows | HBuilderX |
| PC操作系统版本 | Windows 11 | |
| 手机 | Android | |
| 手机版本 | Android 11 | |
| 手机厂商 | 华为 | |
| 手机机型 | nova9 | |
| 页面类型 | vue | |
| vue版本 | vue2 | |
| 打包方式 | 云端 | |
更多关于uni-app uni.chooseVideo二次调用触发fail回调的实战教程也可以访问 https://www.itying.com/category-93-b0.html
{“errMsg”:“chooseVideo:fail start failed”,“code”:-99}
video标签如果一直存在,第二次录像就有问题了,修改后就正常了
同事帮我发现问题了,video标签如果一直存在,第二次录像就有问题了,底层是为什么不清楚
原本:
<template v-if="!src">
<view class=“uni-hello-addfile” @tap=“chooseVideo”>+ 添加视频</view>
</template>
<template v-else>
</template>
改为:
<view class=“uni-hello-addfile” @tap=“chooseVideo”>+ 添加视频</view>
<template v-if="src">
</template>
chooseVideo: function() {下面增加一行:this.src=’’
这样就可以多次拍摄也正常了,但是为什么video标签一直存在会有问题就不清楚了
这个问题是uni-app中uni.chooseVideo在Android设备上的一个常见问题,主要是由于相机资源未正确释放导致的。以下是解决方案:
- 确保在每次调用uni.chooseVideo前先关闭之前的相机资源:
let camera = uni.requireNativePlugin('camera');
camera && camera.release();
- 检查权限设置,确保每次调用前都有相机权限:
uni.authorize({
scope: 'scope.camera',
success() {
// 调用chooseVideo
}
});
- 可以在fail回调中尝试重新调用:
uni.chooseVideo({
sourceType: ['camera'],
success() {
// 成功处理
},
fail(err) {
console.log('第一次失败,尝试重新调用', err);
setTimeout(() => {
uni.chooseVideo({
sourceType: ['camera'],
success() {
// 成功处理
}
});
}, 500);
}
});
- 检查manifest.json中是否配置了必要的权限:
"android": {
"permissions": [
"android.permission.CAMERA",
"android.permission.RECORD_AUDIO"
]
}