1

我试图根据一些参数比较两个 .caf 文件,比如最大分贝或文件的持续时间。我使用以下设置使用AVAudioRecorder类录制了这两个文件:

NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc] init];
    [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey];
    [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; 
    [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
    [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
    [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];

谢谢您的帮助!

4

1 回答 1

1

要获取文件的持续时间,请遵循以下代码:

NSFileManager *fileManager = [NSFileManager defaultManager];
NSError* error;
NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:filePath error&error];

NSInteger duration = fileAttributes.fileAttributes / sampleRare / numberOfChannels / bytesPerSample;

要获得最大分贝,您必须分析文件的内容。

于 2010-09-08T14:53:44.110 回答