iOS 平台: iOS 使用 lame 这个开源的 mp3编码库将 pcm 文件编码为 mp3文件。初次体验一下音频编解码。(在音视频开发过程中,不可能所有的编码解码处理都由开发从零编写,因此要借助一些第三方库)
1.创建一个 iOS 工程,在页面上画一个按钮,然后添加一个点击按钮事件,用于点击后把 pcm音频文件编码为 mp3文件。
- (IBAction)startEncode:(id)sender {
Mp3Encoder *encoder = new Mp3Encoder();
// 源文件的的路径
const char* pcmFilePath = [[CommonUtil bundlePath:@"vocal.pcm"] cStringUsingEncoding:NSUTF8StringEncoding];
// 要生成的mp3文件的路径
const char *mp3FilePath = [[CommonUtil documentsPath:@"vocal.mp3"] cStringUsingEncoding:NSUTF8StringEncoding];
int sampleRate = 44100;
int channels = 2;
int bitRate = 128 * 1024;
// 初始化解码器,传入源文件路径,生成的文件路径,采样频率,声道数,码率
encoder->Init(pcmFilePath, mp3FilePath, sampleRate, channels, bitRate);
// 编码
encoder->Encode();
//关闭文件
encoder->Destory();
delete encoder;
NSLog(@"Encode Success");
NSLog(@"生成结果:%s",mp3FilePath);
}
- 这里主要整理下 lame 的生成和使用,例子和效果可以参考最下面 Demo链接。
1.下载lame库 https://sourceforge.net/projects/lame/files/lame/. 自己选择一个版本进行编译吧,我一般都是选择最新的。
2.下载build的脚本, https://github.com/kewlbear/lame-ios-build 3.下载完上面两个文件,把两个文件放在同一个目录的路径下,然后终端打开,cd到这个路径下面,执行:sudo ./build-lame.sh 一般会生成3个文件。如果只有两个或者一个,参考下面文章修改错误:】 https://www.jianshu.com/p/8f6fcf85e143
4.生成的文件可以参考:https://www.cnblogs.com/XYQ-208910/p/7650759.html 5.运行下面demo例子中代码,自己尝试生成一下 lame,自己敲一下代码,体验下编解码的过程和 lame的首次使用。
Demo例子参考:https://github.com/fangxuan0/iosMp3Encode Demo文章参考:https://blog.csdn.net/sinat_36772813/article/details/85268190
自身不足之处: 1.各个音频文件优缺点:https://wenku.baidu.com/view/cdea117a5beef8c75fbfc77da26925c52cc591be.html
2.c++
来源:oschina
链接:https://my.oschina.net/u/3619392/blog/4340208