简体   繁体   中英

How to determine the size of a recorded audio file

I want to display the size of an audio file in a UITableView . I recorded the audio with:

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: nil];

[[AVAudioSession sharedInstance] setActive: YES error: nil];

NSDictionary *recordSettings = [[NSDictionary alloc] initWithObjectsAndKeys:
                                [NSNumber numberWithFloat: 44100.0], AVSampleRateKey,
                                [NSNumber numberWithInt: kAudioFormatAppleLossless],  AVFormatIDKey,
                                [NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
                                [NSNumber numberWithInt: AVAudioQualityMax], AVEncoderAudioQualityKey, nil];

I saved the file in the Documents folder, and I'm displaying the name in a UITableView cell.

How do I display the size of the audio file as well?

Try this

NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:URL error:&attributesError];

NSNumber *fileSizeNumber = [fileAttributes objectForKey:NSFileSize];
long long fileSize = [fileSizeNumber longLongValue];

Note that the fileSize won't necessarily fit in an integer (especially a signed one) although you could certainly drop to a long for iOS as you'll never exceed that in reality. The example uses long long as in my code I have to be compatible with systems with much larger storage available.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM