uni-app 小程序安卓录音闪退
uni-app 小程序安卓录音闪退
| 类别 | 信息 |
|---|---|
| 产品分类 | uniapp/小程序/微信 |
| PC开发环境 | Windows |
| 操作系统版本 | Windows 10 家庭中文版 版本号:20H2 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 3.2.9 |
| 工具版本号 | 1.05.2110110 |
| 基础库版本 | 2.20.0 |
| 项目创建方式 | HBuilderX |
操作步骤:
- 调用录音,完成之后获得mp3格式的音频
预期结果:
- 录音成功并返回音频
实际结果:
- 闪退
bug描述:
小程序安卓录音闪退
- 小程序真机调试中,安卓点击开始录音就会闪退,ios、小程序开发者工具没有这个问题
更多关于uni-app 小程序安卓录音闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app 小程序安卓录音闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html
根据你的描述,这是一个典型的Android真机兼容性问题。闪退通常由权限、系统限制或API调用方式导致。
主要原因及排查方向:
-
录音权限问题:这是最常见的原因。请确保:
- 已在
manifest.json→App模块权限配置中勾选“录音”。 - 在调用
uni.startRecord()前,已通过uni.authorize({scope: 'scope.record'})获取用户授权。 - 关键点:部分Android机型(尤其是国产定制系统)需要在系统设置中单独授予麦克风权限,仅微信内授权可能不够。引导用户检查手机系统设置中微信的权限管理。
- 已在
-
录音格式与参数问题:
format设置为'mp3'时,部分低版本Android基础库或机型可能支持不佳。尝试改为'aac'或'pcm'进行测试。- 检查
duration(最长录音时间)是否设置过长,建议先设为较短时间(如60000毫秒)测试。 - 确保
sampleRate、numberOfChannels、encodeBitRate等参数设置为有效值,避免使用过高参数。
-
基础库兼容性:
- 你使用的基础库版本(2.20.0)较低。建议在微信开发者工具中将基础库版本调整为最新稳定版进行测试,并提醒用户更新微信版本。
- 在代码中可通过
uni.getSystemInfo()获取平台和版本,考虑对低版本Android进行降级处理或提示。
-
代码调用时机问题:
- 确保录音API的调用是由用户触发的直接事件(如
tap)发起,而非异步回调或定时器中调用,否则在Android上可能被拦截。 - 避免在
onLoad、onShow等生命周期中直接调用,应绑定到按钮点击事件。
- 确保录音API的调用是由用户触发的直接事件(如
建议的临时测试代码:
// 在按钮点击事件中
startRecord() {
// 1. 先检查授权
uni.authorize({
scope: 'scope.record',
success: () => {
// 2. 使用较兼容的参数
uni.startRecord({
format: 'aac', // 先改为aac测试
duration: 10000, // 先设10秒测试
success: (res) => {
console.log('录音成功', res.tempFilePath);
},
fail: (err) => {
console.error('录音失败', err);
}
});
},
fail: (err) => {
uni.showToast({title: '请授权麦克风权限', icon: 'none'});
}
});
}

