[iOS-GQiang]转换音频文件mp3
2014-11-15 10:18
423 查看
使用AVAudioRecorder录制下来的音频文件很大,所以下面我们用lame框架来将录制下来的音频文件转换成mp3格式的文件并缩小。
将几Mb的文件压缩成几kb的文件,这样就能方便开发者们使用了。
lame框架到Github上下载即可。
这样就可以把录制的音频文件压缩成mp3格式的文件了。
将几Mb的文件压缩成几kb的文件,这样就能方便开发者们使用了。
lame框架到Github上下载即可。
#pragma mark - 转换mp3 - (void)audio_PCMtoMP3 { NSString *cafFilePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/downloadFile.caf"]; NSString *mp3FilePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/downloadFile.mp3"]; @try { int read, write; FILE *pcm = fopen([cafFilePath cStringUsingEncoding:1], "rb"); //source 被转换的音频文件位置 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_in_samplerate(lame, 11025.0); lame_set_VBR(lame, vbr_default); 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); } @catch (NSException *exception) { NSLog(@"%@",[exception description]); } @finally {
} }
这样就可以把录制的音频文件压缩成mp3格式的文件了。
相关文章推荐
- iOS 通过(lame)将录制音频转换成Mp3
- iOS疯狂详解之录制音频转换成Mp3
- MP3音频文件转换成caf格式
- iOS 通过(lame)将录制音频转换成Mp3
- iOS 通过(lame)将录制音频转换成Mp3
- iOS关于MP3音频文件合并和MOV音频文件合并
- vs2010音频文件压缩 调用lame_enc.dll将WAV格式转换成MP3
- Android开发 使用Lame把音频文件转换成mp3格式
- 【转载】iOS麦克风录制音频并保存成mp3文件的Demo
- ios CAF音频转换为MP3
- iOS 通过(lame)将录制音频转换成Mp3
- iOS利用AudioQueue播放音频文件(mp3,aac,caf,wav等)
- 如何通过ffmpeg将音频文件转换成Mp3 转
- 将mp3文件数据转换成.h的头文件的音频数据
- java实现silk音频文件转换成mp3
- java 将.amr音频文件转换为.mp3或.wav文件
- IOS caf音频文件如何转化成mp3文件
- iOS 通过(lame)将录制音频转换成Mp3
- iOS 通过(lame)将录制音频转换成Mp3
- iOS 通过(lame)将录制音频转换成Mp3