I've encountered an error invoking the AudioToolbox / MusicPlayer API method "MusicSequenceFileLoad()" to load the contents of a MIDI file (from the given URL) into a music sequence on iOS10 devices.
Primary symptoms:
- This code had previously been working without issue in production on iOS7, 8, and 9
- Runs without issue on the iOS 10 Simulator but returns an OSStatus result of -1 on most iOS 10 devices
Code sample:
@property (readwrite, nonatomic) MusicPlayer midiMusicPlayer;
@property (readwrite, atomic) MusicSequence masterMidiMusicSequence;
- (void)initializeMusicPlayerAndMasterSequenceWithFile:(NSString *)midiFilename
{
CheckError(NewMusicPlayer(&_midiMusicPlayer), "NewMusicPlayer: _midiMusicPlayer");
CheckError(NewMusicSequence(&_masterMidiMusicSequence), "NewMusicSequence: _masterMidiMusicSequence");
NSString *midiFilePath = [NSBundle pathForResource:midiFilename
ofType:@"mid"
checkDocumentsDirectory:YES];
NSURL *midiFileURL = [NSURL fileURLWithPath:midiFilePath];
// Crash is encountered on the following line:
CheckError(MusicSequenceFileLoad(self.masterMidiMusicSequence, (__bridge CFURLRef)midiFileURL, 0, 0), "MusicSequenceFileLoad");
}