如何根据某些参数说最大分贝比较两个音频文件?

时间:2010-09-08 14:30:56

标签: iphone audio avaudioplayer avaudiorecorder avfoundation

我试图根据一些参数比较两个.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];

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

要获取以下代码的文件持续时间:

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

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

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