Thanks to Dave DeLong: Its a CoreMedia error: Returned when caller passes incorrect input or output parameters
So it's a paramErr, but for CoreMedia. Something, somewhere, internally went amiss, and it's interpreting an argument as invalid.
Here are situations I've either encountered or seen on the net:
#import <AudioToolbox/AudioToolbox.h> ... - (NSTimeInterval) voiceCueLength { NSTimeInterval length = 0.0; NSURL *audioURL = [NSURL fileURLWithPath: self.pathToVoiceCue]; OSStatus result = noErr; AudioFileID audioFile = NULL; result = AudioFileOpenURL ((CFURLRef)audioURL, kAudioFileReadPermission, 0, // hint &audioFile); if (result != noErr) goto bailout; //Get file length NSTimeInterval seconds; UInt32 propertySize = sizeof (seconds); result = AudioFileGetProperty (audioFile, kAudioFilePropertyEstimatedDuration, &propertySize, &seconds); if (result != noErr) goto bailout; length = seconds; bailout: if (audioFile) AudioFileClose (audioFile); return length; } // voiceCueLengthAnd Link with the AudioToolbox framework.