iOS 通过(lame)将录制音频转换成Mp3
2016-07-08 16:31
751 查看
#import "lame.h"
//引入libmp3lame.a
#pragma mark - caf文件转换成MP3格式
/**
*
* @param cafPath caf文件地址
* @param mp3Path mp3文件存放地址
*/
+ (void)cafToMp3:(NSString *)cafPath toMp3Path:(NSString *)mp3Path{
@try {
int write,read;
FILE *pcm =
fopen([cafPath cStringUsingEncoding:1],
"rb"); //source
被转换的音频文件位置
fseek(pcm,
4*1024, SEEK_CUR);
FILE *mp3 =
fopen([mp3Path cStringUsingEncoding:1],
"wb"); //output
输出生成的Mp3文件位置
NSLog(@"%@",cafPath);
NSLog(@"%@",mp3Path);
const int PCM_SIZE =
8192;
const int MP3_SIZE =
8192;
short int pcm_buffer[PCM_SIZE*2];
unsigned char mp3_buffer[MP3_SIZE];
lame_t lame =
lame_init();
lame_set_in_samplerate(lame,
44100);
lame_set_VBR(lame,
vbr_default);
lame_init_params(lame);
do {
read = (int)fread(pcm_buffer,
2*sizeof(short
int), PCM_SIZE, pcm);
if (read ==
0)
write = lame_encode_flush(lame, mp3_buffer, MP3_SIZE);
else
write = lame_encode_buffer_interleaved(lame, pcm_buffer, read, mp3_buffer, MP3_SIZE);
fwrite(mp3_buffer, write,
1, mp3);
} while (read !=
0);
lame_close(lame);
fclose(mp3);
fclose(pcm);
}
@catch (NSException *exception) {
NSLog(@"%@",[exception
description]);
}
@finally {
NSLog(@"MP3生成成功: %@",mp3Path);
}
}
//引入libmp3lame.a
#pragma mark - caf文件转换成MP3格式
/**
*
* @param cafPath caf文件地址
* @param mp3Path mp3文件存放地址
*/
+ (void)cafToMp3:(NSString *)cafPath toMp3Path:(NSString *)mp3Path{
@try {
int write,read;
FILE *pcm =
fopen([cafPath cStringUsingEncoding:1],
"rb"); //source
被转换的音频文件位置
fseek(pcm,
4*1024, SEEK_CUR);
FILE *mp3 =
fopen([mp3Path cStringUsingEncoding:1],
"wb"); //output
输出生成的Mp3文件位置
NSLog(@"%@",cafPath);
NSLog(@"%@",mp3Path);
const int PCM_SIZE =
8192;
const int MP3_SIZE =
8192;
short int pcm_buffer[PCM_SIZE*2];
unsigned char mp3_buffer[MP3_SIZE];
lame_t lame =
lame_init();
lame_set_in_samplerate(lame,
44100);
lame_set_VBR(lame,
vbr_default);
lame_init_params(lame);
do {
read = (int)fread(pcm_buffer,
2*sizeof(short
int), PCM_SIZE, pcm);
if (read ==
0)
write = lame_encode_flush(lame, mp3_buffer, MP3_SIZE);
else
write = lame_encode_buffer_interleaved(lame, pcm_buffer, read, mp3_buffer, MP3_SIZE);
fwrite(mp3_buffer, write,
1, mp3);
} while (read !=
0);
lame_close(lame);
fclose(mp3);
fclose(pcm);
}
@catch (NSException *exception) {
NSLog(@"%@",[exception
description]);
}
@finally {
NSLog(@"MP3生成成功: %@",mp3Path);
}
}
相关文章推荐
- iOS - Json解析精度丢失处理(NSString, Double, Float)
- iOS推送兼容iOS7
- iOS强制改变物理设备方向的进阶方法
- iOS开发 - MD5加密
- iOS: 详细的正则表达式
- iOS9 新功能:Support Universal Links,iOS10 openUrl新函数
- 完整的申请邓白氏编码的流程(手把手教你申请邓白氏编码)
- h5和ios原生混合开发,h5数据列表页面上滑崩溃
- IOS如何在当前工程中导入另一个工程文件
- iOS开发:不显示状态栏
- iOS安全–不同平台的崩溃收集
- iOS安全–实时查看模拟器的日志输出
- iOS - 报错 linker command failed with exit code 1
- 自定义iOS下的log记录系统
- iOS 查询数组中的对象
- iOS 使用HealthKit框架实现获取今日步数
- 关于NSString stringWithFormat输出“%”问题
- ios 粘贴板
- IOS 复制 粘贴
- 音频播放