PCM文件转换为MP3文件
简要描述
主要协助云上越秀App对接云学堂.AI智能教练H5过程中,云上越秀App需要实现的功能代码示例;
引入方式
附件中有相关实现源码,如果不修改C语言源文件,可以直接使用
LameUtil/libs/
下的so文件(具体需要哪个平台,按需求选取)将附件解压后,将
LameUtil/src/main/java/
目录下的LameMP3Converter
文件引入到主工程项目中即可
使用方法
在主工程调用前必须先初始化,init的具体参数可以直接使用,记得convertMp3操作在线程中进行
LameMP3Converter.init(16000, 1, 0, 16000, 64, 7)
LameMP3Converter.convertMp3(filePath, destFilePath)
备注
Lame编译配置:
参考
https://wufengxue.github.io/2019/05/25/wechat-voice-codec-lame.html
https://github.com/Jay-Goo/Mp3Converter
https://blog.csdn.net/bjrxyz/article/details/73435407?locationNum=15&fps=1
https://www.jianshu.com/p/fb531239cd79
https://github.com/GavinCT/AndroidMP3Recorder
需要配置NDKPCM转MP3:
由于讯飞SDK生成的是16000, 16bit, 单声道
只测试了单声道的效果,多声道效果没有测试
这个功能是参考 https://github.com/Jay-Goo/Mp3Converter 库做的
不过这个库有两个问题
- 没法编码单声道pcm文件
- 最后一段录音没有
解决方案记录:
1 可以通过使用lame_encode_buffer解决
2 需要在read=0读取结束时再write一遍数据fwrite