lame,把ios录音转换为mp3格式
在ios设备中进行录音,录音文件的格式为caf。但这种格式在很多设备中没法播放。为了适应终端的播放功能,特将caf转换为mp3格式文件来使用。
在录制caf文件时,需要使用双通道,否则在转换为MP3格式时,声音不对。caf录制端的设置为:
NSMutableDictionary * recordSetting = [NSMutableDictionary dictionary];
[recordSetting setValue :[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];//
[recordSetting setValue:[NSNumber numberWithFloat:8000.0] forKey:AVSampleRateKey];//采样率
[recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];//声音通道,这里必须为双通道
[recordSetting setValue:[NSNumber numberWithInt:AVAudioQualityLow] forKey:AVEncoderAudioQualityKey];//音频质量
在转换mp3端的代码为:
NSString *cafFilePath = cafFilePathName; //caf文件路径
NSString *mp3FilePath = mp3FilePathName;//存储mp3文件的路径
NSFileManager* fileManager=[NSFileManager defaultManager];
if([fileManager removeItemAtPath:mp3FilePath error:nil])
{
NSLog(@"删除");
}
@try {
int read, write;
FILE *pcm = fopen([cafFilePath cStringUsingEncoding:1], "rb"); //source 被转换的音频文件位置
if(pcm == NULL)
{
NSLog(@"file not found");
}
else
{
fseek(pcm, 4*1024, SEEK_CUR); //skip file header
FILE *mp3 = fopen([mp3FilePath cStringUsingEncoding:1], "wb"); //output 输出生成的Mp3文件位置
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_num_channels(lame,1);//设置1为单通道,默认为2双通道
lame_set_in_samplerate(lame, 8000.0);//11025.0
//lame_set_VBR(lame, vbr_default);
lame_set_brate(lame,8);
lame_set_mode(lame,3);
lame_set_quality(lame,2); /* 2=high 5 = medium 7=low 音质*/
lame_init_params(lame);
do {
read = 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);
return YES;
}
return NO;
}
@catch (NSException *exception) {
NSLog(@"%@",[exception description]);
return NO;
}
@finally {
NSLog(@"执行完成");
}
转载于:https://www.cnblogs.com/ios8/p/lame-ios-mp3.html
lame,把ios录音转换为mp3格式相关推荐
- iOS 录音转MP3格式
参考:https://github.com/molon/MLAudioRecorder 非常感谢 可以借助demo进行学习,demo地址: https://github.com/qiweiqiang ...
- 如何将录音m4a转换为mp3格式?
如何将录音m4a转换为mp3格式?前段时间由于工作原因,需要上传录音文件到一个网站上,可是这个录音文件怎么也上传不上去,查看原因后才发现原来网站只支持mp4的音频文件,而我是用苹果手机录音的,录音文件 ...
- 电脑录制的音频文件如何转换为MP3格式
很多人认为,电脑录制的文件是不能转换格式,其实并不是这样的,电脑录制的音频文件转换为MP3格式大家是可以借助工具完成,如今市面上出现了很多的音频转换工具,它可以把音频的格式进行不同的变化但是大家却不知 ...
- PHP 将amr音频文件转换为mp3格式
PHP 将amr音频文件转换为mp3格式 说下整体思路 1.服务器安装ffmpeg 2.使用ffmpeg -i 指令来转换amr为mp3格式(这个到时候写在PHP代码中,使用exec函数执行即可) 3 ...
- ogg格式文件转换为MP3格式
目录 下载编译libmp3lame 配置编译ffmpeg 验证libmp3lame 下载编译libmp3lame 在ubuntu下使用ffmpeg时出现了如下Unknown encoder 'libm ...
- ubuntu下把微信的amr音频格式转换为 mp3格式
做一个微信微拍的系统,从微信的音频中读取回来的格式是amr,但是在苹果系统中不能正常的播放,需要转换为mp3格式 在终端运行如下命令 1.sudo apt-get install lame 2.sud ...
- 在线qmc0转换mp3工具_如何将M4A格式的音频转换为MP3格式?只需一步搞定
随着网络技术的发达,会有很多人喜欢在网上下载东西,特别是很喜欢在网上下载音乐,但是下载音乐之后发现是M4A格式?这样用起来很不方便,都喜欢MP3格式的,那么如何将M4A格式的音频转换为MP3格式?今天 ...
- linux java amr转mp3_本工具用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...
音频转码工具 本工具主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放. 支持 Linux/Windows/Mac 平台 因为是基于 JAVE 项目 ...
- amr转换成mp3 java_java将amr文件转换为MP3格式(windowslinux均可使用,亲测)
使用场景: 业务中需要使用微信语音接口,由于微信上传语音只保存3天,所以需要将语音文件下载到服务器. 但是amr格式文件,前端无法识别,需要将其转换为mp3格式. 装换方法如下: 1.需安装ffmpe ...
最新文章
- CSS中background-position属性
- 磁盘上没有足够的空间完成此操作_三年多啦,那么多IT人还没有搞定这个问题...
- ASP Win7旗舰版中的IIS配置asp.net的运行环境
- 如何批量创建网页的快捷方式
- nginx php动态编译加载模块.
- openrowset excel 科学计数_txt的数据导入excel中身份证或银行卡显示成科学计数如何解决...
- MagicRecord For IOS API深层解析
- firefox使用掘金插件_Mozilla发布新的附加组件来修复旧版Firefox中的扩展禁用问题...
- 一条SQL语句的千回百转
- 60-130-336-源码-source-kafka相关-Flink读取kafka
- Linux top命令里面%CPU和cpu(s)的差别
- Linux系统(X64)7 安装Oracle11g完整安装图文教程另附基本操作
- MLE MAP EM
- Cent OS (一)Cents OS的基本安装
- VO,DTO,PO 的个人见解
- 写给20几岁的女孩、男孩
- WebApi编程(一)-DOM
- vsimk is exiting with code 211
- 神经网络中BP算法的推导
- ShowWindow 隐藏、显示、最大化、最小化窗口
热门文章
- 先进制造技术论文_干货分享:新能源汽车先进制造技术
- 前端信息查询与显示_中国商标网查询显示的信息都是正确的吗
- python 画图设置横纵坐标_Python输出高质量论文图片
- html如何设置字符类型,html 空格字符类型
- 计算机控制系统开卷试卷,13自动化计算机控制技术考试A卷
- arduino无源蜂鸣器歌曲编码_Arduino与无源蜂鸣器
- 为什么不用DriverManager.registerDriver(driver)
- 电子商务之 网店客服中心服务用语规范
- struts、hibernate、spring、 mybatis、 spring boot 等面试题汇总
- 微信二次修改微信号_微信支持修改微信号了!功能正式上线,附详细教程