2つのエラーが発生しました。CoreMIDI/PGMidi iOS6の仮想ミディエラー
このコードは、iOS 4と5で働いていたが、6にアップデートした後、私が、次を発見した
(動作していないが、コードでそれを修正する方法がわからない。
iOSの6で始まり、アプリケーションはキーセットがなければ、これらの機能はkMIDINotPermitted(-10844)を返します。CoreMIDIのMIDISourceCreateとMIDIDestinationCreate機能を使用するために彼らのUIBackgroundModesのオーディオキーを持っている必要があります。
2012年9月23日03:40:04.773 MidiStudio [1017:907]エラー(MIDIバーチャルサワーを作成するCE):-10844:エラードメイン= NSMachErrorDomainコード= -10844 "操作を完了できませんでした。 "017:907]エラー(MIDI仮想送り先の作成):-10844:エラードメイン= NSMachErrorDomainコード= -10844"操作完了できませんでした。 (マッハエラー-10844)は」ここに
は、 'ソース' のためのコードです:
-(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;
}
}
自分自身への注意:リリースノートを読んでください。 –
参考になったplistエントリ名は "Required background modes" –