你想反馈一个 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)
如果是需求:
* 你希望有什么能力?
* 你需要这个能力的场景是 ?
你好,正常的声音文件包含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,这样高频会被消除
我发几个声音文件以及网页供你录音测试和参考,也可以具体交流
另外在nova系列上好像也有问题,而且我直接用ANDROID代码测过,硬件和ANDROID系统没有消除高频音乐。