你想反馈一个 Bug 还是 提一个需求?
BUG
如果是 Bug:
* Bug 表现是什么?预期表现是什么?
wx.getRecordManager用MP3方式录音,码率设置为128000(中)--320000(最高),采样率设为44100,录音文件的高频音乐完全丢失。
在IOS和其它ANDROID机型,包括华为的非MATE机型上都是正常的,高频完整保留了下来。
预期是在华为的mate系列机型上录音的高频音乐完整保留
* 如何复现?
用wx.getRecordManager在华为mate9 mate10上录音
* 提供一个最简复现 Demo
const options = {
duration: 10000,
sampleRate: 44100,
numberOfChannels: 1,
encodeBitRate: 320000,
format: 'mp3'
}
const recordManager = wx.getRecorderManager();
recordManager.start(options)
如果是需求:
* 你希望有什么能力?
* 你需要这个能力的场景是 ?
更新一下,选了AAC格式录音也没有高频,多数是FFMPEG的参数设置问题或是原始PCM流就把高频消除了
还有一种可能是如果你们不是直接用LIBLAME来压缩而是通过FFMPEG再调用LIBLAME的话,要记得把CUT OFF(高频消除)设为20000,有可能在华为的这个版本上没有设置
这个BUG对本公司非常非常非常重要,麻烦你了
微信 yecq_82
原生APP我试了audiorecord api, 从原始PCM数据流来看没有问题,我自己的测试APP是可以通过的。
所以问题有可能有几种
1 微信用了非标准输入API,或者是选择的数据源有问题,导致PCM数据流中的高频被消除
2 压缩中用的LIBLAME不一致,可能是为了适配KILIN芯片另编了一套库,其中的代码和编译参数不一致
关于测试方法,网上有一些测听力的纯高频声音,请选择16K以上的,用小米手机录一段MP3,再用华为mate的录一下,用音频软件比较一下就知道了
百度搜 mp3 高频 ,出来的第一个页面就有解释
另外希望在录音时可选手机MIC或是耳机,尤其是在有插入耳机或是接了蓝牙耳机的情况下
你好,正常的声音文件包含20-20000Hz频率的采样,高频丢失就是只保留了16000以下甚至8000以下的频率
我测过华为的g7plus, nova2, mate9, mate10, 小米系列和ios,用微信MP3录音
nova2, mate9,mate10是高频被消除了的,mate8是否也如此不清楚,其它几种都是好的。
个人猜测有几种可能:
1 你们有几套LIB对应不同的ABI,可能是编译的时候LIBLAME用的参数不一致
2 我测的代码是用audiorecord api,估计你们内部用了opensl,也许华为的这几款在opensl实现上有差异或是有参数可调
3 录音时选的dest不是mic,而是voice,这样高频会被消除
我发几个声音文件以及网页供你录音测试和参考,也可以具体交流
另外希望在录音时可以选择用手机MIC还是耳机
5 5 4 8 9 1 8 1