uni-app uni.chooseVideo 设置了最大秒数后依然录制
uni-app uni.chooseVideo 设置了最大秒数后依然录制
操作步骤:
11111
预期结果:
4秒自动停止
实际结果:
4秒后依然录制
bug描述:
uni.chooseVideo
maxDuration设置了4秒,但不会自动停止,依然录制
正常的h5里面这样么
更多关于uni-app uni.chooseVideo 设置了最大秒数后依然录制的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中使用 uni.chooseVideo
方法时,如果你设置了 maxDuration
参数但仍然发现录制的视频长度超过了设定的最大秒数,可能是由于以下原因:
1. 平台差异
uni.chooseVideo
在不同平台(如微信小程序、H5、App)上的实现可能有所不同。某些平台可能不会严格限制录制的视频时长,或者限制的方式不同。
2. 参数设置问题
确保你在调用 uni.chooseVideo
时正确设置了 maxDuration
参数。例如:
uni.chooseVideo({
sourceType: ['camera'], // 从相机拍摄
maxDuration: 10, // 最大录制时长 10 秒
success(res) {
console.log('视频路径:', res.tempFilePath);
},
fail(err) {
console.error('选择视频失败:', err);
}
});
3. 平台限制
某些平台可能对 maxDuration
参数的支持有限。例如,微信小程序可能对 maxDuration
的支持较好,而其他平台可能不完全支持。
4. 用户操作
即使用户在录制时超过了设定的最大时长,某些平台可能仍然会返回完整的视频。你可以在 success
回调中对视频进行进一步处理,例如截取前 maxDuration
秒的内容。
5. 自定义处理
如果平台不支持严格的时长限制,你可以在录制完成后手动处理视频。例如,使用 uni.getVideoInfo
获取视频信息,然后使用 uni.compressVideo
进行压缩或截取。
uni.getVideoInfo({
src: res.tempFilePath,
success(videoInfo) {
if (videoInfo.duration > 10) {
// 处理视频,例如截取前 10 秒
uni.compressVideo({
src: res.tempFilePath,
quality: 'high',
compressedLength: 10, // 截取前 10 秒
success(compressedRes) {
console.log('压缩后的视频路径:', compressedRes.tempFilePath);
},
fail(compressErr) {
console.error('压缩视频失败:', compressErr);
}
});
}
},
fail(videoErr) {
console.error('获取视频信息失败:', videoErr);
}
});