uni-app uni.getRecorderManager() IOS 第一次录音只能固定60S
uni-app uni.getRecorderManager() IOS 第一次录音只能固定60S
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | 11.2.3 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
PC开发环境操作系统版本号:11.2.3
HBuilderX类型:正式
HBuilderX版本号:3.1.12
手机系统:iOS
手机系统版本号:IOS 14
手机厂商:苹果
手机机型:iphoneX
页面类型:vue
打包方式:云端
操作步骤:
获取权限后
uni.getRecorderManager()
第一次录音只能固定60S
设置时长无效
重进后可以设置时长
预期结果:
获取权限后
uni.getRecorderManager()
第一次录音只能固定60S
设置时长无效
重进后可以设置时长
实际结果:
获取权限后
uni.getRecorderManager()
第一次录音只能固定60S
设置时长无效
重进后可以设置时长
bug描述:
获取权限后
uni.getRecorderManager()
第一次录音只能固定60S
设置时长无效
重进后可以设置时长
更多关于uni-app uni.getRecorderManager() IOS 第一次录音只能固定60S的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
没人吗
更多关于uni-app uni.getRecorderManager() IOS 第一次录音只能固定60S的实战教程也可以访问 https://www.itying.com/category-93-b0.html
找到原因了, permission.js 请求权限状态为3时开始录音没设置选项
这是一个已知的iOS平台权限相关的问题。在首次调用uni.getRecorderManager()时,由于iOS系统对录音权限的严格管理,可能会出现录音时长被限制为60秒的情况,即使设置了duration参数也无效。
问题原因: iOS系统在首次授权录音权限时,会采用较为保守的默认设置,导致录音管理器初始化时的默认时长限制为60秒。这个限制在应用重新启动或重新初始化录音管理器后会被解除。
临时解决方案:
- 在应用启动时预初始化录音管理器,但不立即开始录音
- 在获取录音权限后,先销毁并重新创建录音管理器实例
- 在首次录音前添加一个简短的延迟,确保权限完全生效
示例代码:
// 应用启动时预初始化
const recorderManager = uni.getRecorderManager()
// 在需要录音时重新获取实例
onRecordStart() {
this.recorderManager = uni.getRecorderManager()
// 设置参数
this.recorderManager.start({
duration: 60000, // 设置所需时长
// 其他参数...
})
}

