我正在尝试将录制的wave文件转换为flac文件。我正在使用this教程来做到这一点。从here获取LibFlac项目,然后在构建后获得flacios.framwork
和libFLACiOS.a
。
我在我的iOS项目中添加了这两件事但是我得到错误,说没有找到flacios.faramework。我不知道为什么那个bcoz它在那里的大厅时间。所以我刚刚复制了flacios.framework的Header文件并将其添加到我的项目中
我使用wav_to_flac文件将wave文件转换为flac并使用此代码执行此操作:
NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = [NSString stringWithFormat:@"%@/%@",[searchPaths objectAtIndex:0],@"tmp"];
NSString *flacFile = documentPath;
NSString *waveFile = recorderFilePath;
NSLog(@"flacFile : %@",flacFile);
NSLog(@"recorderFilePath : %@",recorderFilePath);
const char *wave_file = [waveFile UTF8String];
const char *flac_file = [flacFile UTF8String];
int interval_seconds = 30;
char** flac_files = (char**) malloc(sizeof(char*) * 1024);
int conversionResult = convertWavToFlac(wave_file, flac_file, interval_seconds, flac_files);
NSLog(@"conversionResult : %i",conversionResult);
我的wave文件日志说:
recorderFilePath : /var/mobile/Applications/C5A86F04-A6A2-44EA-81A9-7AD1F36AAE5D/Documents/MyAudioMemo.wav
我的flac文件日志:
flacFile : /var/mobile/Applications/C5A86F04-A6A2-44EA-81A9-7AD1F36AAE5D/Documents/tmp
但我最后得到了这个错误:
writing to new flac file /var/mobile/Applications/C5A86F04-A6A2-44EA-81A9-7AD1F36AAE5D/Documents/tmp.flac
Assertion failed: (encoder->protected_->state == FLAC__STREAM_ENCODER_OK), function FLAC__stream_encoder_process_interleaved, file /Users/dilipmanek/Desktop/FLACiOS-no-ogg/libFLAC/src/libFLAC/stream_encoder.c, line 2040.
是否有人为此工作而不是plz帮助。
答案 0 :(得分:0)
昨天我遇到了同样的错误,经过几个小时的搜索,我找到了一个解决方案。
录制wav文件时,请使用以下设置并尝试再次转换。
recorderSettingsDict =[[NSDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithInt:kAudioFormatLinearPCM],AVFormatIDKey,
[NSNumber numberWithInt:16000.0],AVSampleRateKey,
[NSNumber numberWithInt:2],AVNumberOfChannelsKey,
[NSNumber numberWithInt:16],AVLinearPCMBitDepthKey,
[NSNumber numberWithBool:NO],AVLinearPCMIsBigEndianKey,
[NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey,
nil];