大多数代码源自于 ExtAudioFileConverter,因为网上关于音频格式转换的太少了,而且还特别麻烦,故封装为 Cocoapods
库,方便使用,转换 MP3
格式需要用到 lame
静态库,使用 pod
之后不需要单独集成 lame
静态库,直接 pod install
即可使用,这是库的地址:GZZAudioConverter 。
Installation
仅支持 CocoaPods
,将如下代码加入 Podfile
文件中。
Useage
dispatch_async(dispatch_queue_create(NULL, DISPATCH_QUEUE_SERIAL), ^ { GZZAudioConverter *converter = [[GZZAudioConverter alloc] init]; converter.inputFile = @"/var/mobile/Containers/Data/Application/xxx/Documents/xxx.wav"; converter.outputFile = @"/var/mobile/Containers/Data/Application/xxx/Documents/xxx.mp3"; converter.outputFileType = kAudioFileMP3Type; converter.outputFormatID = kAudioFormatMPEGLayer3; BOOL success = [converter convert]; dispatch_async(dispatch_get_main_queue(), ^ { if (success) { NSLog(@"转换成功"); } else { NSLog(@"转换失败"); } }); });
|
Methods
注意:文件格式和数据格式要根据你要转换的音频格式来设置,不同文件格式对应的数据格式是不同的,这是关于文件格式和数据格式的 说明文档 。
converter.outputSampleRate = 44100;
converter.outputNumberChannels = 2;
converter.outputBitDepth = BitDepth_16;
converter.outputFileType = kAudioFileWAVEType;
converter.outputFormatID = kAudioFormatLinearPCM;
|