Nimisha Ranipa
Nimisha Ranipa

Reputation: 8324

How can i get what is maximum limit for record audio file?

Currently i am using AVAudioSession to record audio in iOS but problem occur when record more than 50 minutes recording. More than 50 minutes recoding can't play using AVAudioPlayer.

Can anyone tell what is maximum limit for Record audio.

Upvotes: 2

Views: 595

Answers (2)

Nimisha Ranipa
Nimisha Ranipa

Reputation: 8324

There is no limit for record file in iPhone. But Before save to Application Document Directory. Check available space on iPhone and then save, so there is less chance to lost files.

Below code for check available free space in iPhone.

-(uint64_t)getFreeDiskspace {
    NSString *folderPath = [[NSBundle mainBundle] bundlePath];
    NSArray *filesArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:folderPath error:nil];
    NSEnumerator *filesEnumerator = [filesArray objectEnumerator];
    NSString *fileName;
    unsigned long long int fileSize = 0;

    while (fileName = [filesEnumerator nextObject]) {
        NSDictionary *fileDictionary = [[NSFileManager defaultManager] fileAttributesAtPath:[folderPath stringByAppendingPathComponent:fileName] traverseLink:YES];
        fileSize += [fileDictionary fileSize];
    }

    NSLog(@"App size : %lld",fileSize);
    uint64_t totalSpace = 0;
    uint64_t totalFreeSpace = 0;
    NSError *error = nil;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];

    NSError *attributesError = nil;

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

    NSLog(@"App Directory size %llu",[fileAttributes fileSize]);

    if (dictionary) {
        NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize];
        NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize];
        totalSpace = [fileSystemSizeInBytes unsignedLongLongValue];
        totalFreeSpace = [freeFileSystemSizeInBytes unsignedLongLongValue];
        NSLog(@"Memory Capacity of %llu MiB with %llu MiB Free memory available.", ((totalSpace)), ((totalFreeSpace)));
    } else {
        NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %ld", [error domain], (long)[error code]);
    }
//    NSLog(@"DISK SPACE %f",[self diskSpace]);
//    NSLog(@"GET FREE SPACE %lld",[self getFreeSpace]);
    return totalFreeSpace;
}
- (long long)getFreeSpace
{
    long long freeSpace = 0.0f;
    NSError *error = nil;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];

    if (dictionary) {
        NSNumber *fileSystemFreeSizeInBytes = [dictionary objectForKey: NSFileSystemFreeSize];
        freeSpace = [fileSystemFreeSizeInBytes longLongValue];
    } else {
        //Handle error
        NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %ld", [error domain], (long)[error code]);
    }
    NSLog(@"Free Space %lli",freeSpace);
    return (freeSpace);
}

Upvotes: 4

Mostafa Sultan
Mostafa Sultan

Reputation: 2436

I couldn't find it's max limit but here is a code to limit it to a specific number of seconds so that you can try and catch to find what is the limit

Setting a time limit when recording an audio clip?

Upvotes: 0

Related Questions