uni-app uni.chooseVideo 设置了最大秒数后依然录制

uni-app uni.chooseVideo 设置了最大秒数后依然录制

操作步骤:

11111

预期结果:

4秒自动停止

实际结果:

4秒后依然录制

bug描述:

uni.chooseVideo
maxDuration设置了4秒,但不会自动停止,依然录制

2 回复

正常的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);
  }
});
回到顶部