uni-app uni.getRecorderManager()录制的音频文件,选择wav格式后,文件内容的head显示amr
uni-app uni.getRecorderManager()录制的音频文件,选择wav格式后,文件内容的head显示amr
类别 | 信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC版本号 | x64 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 4.08 |
手机系统 | Android |
手机版本号 | Android 12 |
手机厂商 | 华为 |
手机机型 | mate20 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
示例代码:
// 点击开始按钮的操作
handleConfirm() {
//console.log('开始按钮被点击');
recorderManager.start({
format: 'wav',
sampleRate: 16000
});
this.isloading = true
this.end_record = false
},
操作步骤:
handleConfirm() {
recorderManager.start({
format: 'wav',
sampleRate: 16000
});
this.isloading = true
this.end_record = false
},
预期结果:
文件为wav且可以被后端检验通过
实际结果:
文件后缀为arm但解析头部为amr格式
bug描述:
uni.getRecorderManager()录制的音频文件,选择wav格式后,上传到服务器文件后缀为.wav,但文件内解析的head显示amr,后端无法识别为wav文件,导致无法进行语音识别,语音识别只能使用wav,包括pmc格式也显示为arm-wb。
更多关于uni-app uni.getRecorderManager()录制的音频文件,选择wav格式后,文件内容的head显示amr的实战教程也可以访问 https://www.itying.com/category-93-b0.html
哎,找了一圈,都没人解决,楼主有方案没
更多关于uni-app uni.getRecorderManager()录制的音频文件,选择wav格式后,文件内容的head显示amr的实战教程也可以访问 https://www.itying.com/category-93-b0.html
有效格式只有aac/mp3,填其他任何文件格式都是amr的,没办法
回复 1***@qq.com: 为什么我用aac格式的上传到后端语音识别接口,还是不行,无返回
楼主,解决了吗
uniapp的安卓底层对wav进行了压缩,导致成了arm 传过去后端没办法识别,苦死我了,现在准备给后端传MP3,让后端去处理转换
在 uni-app 中使用 uni.getRecorderManager()
录制音频时,如果你选择了 wav
格式,但文件内容的头部显示为 AMR
,这可能是由于以下原因:
1. 格式支持问题
uni.getRecorderManager()
在某些平台(如微信小程序)可能默认支持amr
格式,而不是wav
格式。- 即使你指定了
format: 'wav'
,底层实现可能仍然使用amr
格式进行录制,导致文件头部显示为AMR
。
2. 平台限制
- 不同平台对音频格式的支持不同。例如,微信小程序可能更倾向于使用
amr
格式,因为它更适合移动端,文件体积较小。 - 如果你在微信小程序中使用
uni.getRecorderManager()
,它可能会忽略wav
格式的设置,默认使用amr
。
3. 文件头信息错误
- 可能是文件头信息写入错误,导致文件虽然以
wav
格式保存,但头部信息却是AMR
。这种情况比较少见,但可能由于底层实现的问题导致。
解决方法:
-
检查平台支持:
- 确认你使用的平台是否支持
wav
格式。如果不支持,可能需要使用amr
格式。
- 确认你使用的平台是否支持
-
手动转换格式:
- 如果平台不支持
wav
格式,你可以录制amr
格式的音频,然后在后端或前端使用工具将其转换为wav
格式。
- 如果平台不支持
-
使用其他插件或工具:
- 如果
uni.getRecorderManager()
无法满足需求,可以考虑使用其他第三方插件或工具来录制wav
格式的音频。
- 如果
-
检查代码:
- 确保你正确设置了
format
参数:const recorderManager = uni.getRecorderManager(); recorderManager.start({ format: 'wav', // 其他参数 });
- 确保你正确设置了