Ante dos errores.CoreMIDI/PGMidi Error midi virtual en iOS6
Este código trabajó en IOS 4 y 5, pero después de la actualización a 6, que no está funcionando (
encontré siguiente, pero no saben cómo solucionarlo en el código.
a partir de iOS 6, aplicaciones necesitan tener la clave de audio en sus UIBackgroundModes con el fin de utilizar las funciones MIDISourceCreate y MIDIDestinationCreate de CoreMIDI. Sin el conjunto de claves, estas funciones devolverán kMIDINotPermitted (-10.844).
2012-09-23 03: 40: 04.773 MidiStudio [1017: 907] Error (Crear MIDI virtual agrio ce): -10844: Dominio de error = NSMachErrorDomain Code = -10844 "No se pudo completar la operación. (Error de Mach -10844) "
2012-09-23 03: 40: 04.777 MidiStudio [1017: 907] Error (Crear destino virtual MIDI): -10844: Dominio de error = NSMachErrorDomain Code = -10844" La operación no pudo ser completado (. Mach error -10844)"
Aquí es código para 'fuente':.
-(void)setVirtualSourceEnabled:(BOOL)virtualSourceEnabled {
if (virtualSourceEnabled == self.virtualSourceEnabled) return;
if (virtualSourceEnabled) {
NSString *name = virtualEndpointName ? virtualEndpointName : [[[NSBundle mainBundle] infoDictionary] valueForKey:(NSString*)kCFBundleNameKey];
OSStatus s = MIDISourceCreate(client, (CFStringRef)name, &virtualSourceEndpoint);
NSLogError(s, @"Create MIDI virtual source");
if (s != noErr) return;
virtualSourceDestination = [[PGMidiVirtualSourceDestination alloc] initWithMidi:self endpoint:virtualSourceEndpoint];
[delegate midi:self destinationAdded:virtualSourceDestination];
[[NSNotificationCenter defaultCenter] postNotificationName:PGMidiDestinationAddedNotification
object:self
userInfo:[NSDictionary dictionaryWithObject:virtualSourceDestination
forKey:PGMidiEndpointKey]];
} else {
[delegate midi:self destinationRemoved:virtualSourceDestination];
[[NSNotificationCenter defaultCenter] postNotificationName:PGMidiDestinationRemovedNotification
object:self
userInfo:[NSDictionary dictionaryWithObject:virtualSourceDestination
forKey:PGMidiEndpointKey]];
[virtualSourceDestination release]; virtualSourceDestination = nil;
OSStatus s = MIDIEndpointDispose(virtualSourceEndpoint);
NSLogError(s, @"Dispose MIDI virtual source");
virtualSourceEndpoint = NULL;
}
}
Nota para mí: lea las notas de la versión. –
FYI, el nombre de entrada fácil de usar es "Modos de fondo requeridos" –