Ну, я пытаюсь реализовать IAA в своем приложении iOS и тщательно изучил Apple «InterAppAudioSuite», а также видео WWDCXIII 602. Мое приложение ведет себя как Apple InterAppAudioSampler, и я использовал как можно больше кода из этого примера.Inter-App Audio: я даже не могу подключить свой узел
Запустится мое приложение, и я получаю сообщение «AudioOutputUnitPublish stub called» в окне журнала, которое говорит - я думаю, что все в порядке. Затем я запускаю приложение «InterAppAudioHost» от Apple и пытаюсь подключить мое приложение (которое действует как аудиоустройство удаленного инструмента). Мое приложение доступно в списке приложений. Но тогда он не сможет подключиться и я получаю следующий журнал:
2014-01-16 11:10:27.556 DM1[141:60b] Could not search: {
NSNetServicesErrorCode = "-72000";
NSNetServicesErrorDomain = 10;
}
2014-01-16 11:10:27.558 DM1[141:60b] Could not publish service: {
NSNetServicesErrorCode = "-72000";
NSNetServicesErrorDomain = 10;
}
(. Ни один из моих связанных IAA методов не называется в моем приложении)
Тогда «InterAppAudioHost» завершает работу и его журнал говорит:
2014-01-16 11:10:47.555 IAA Host[150:60b] 11:10:47.554 ERROR: [0x3b2e718c] 168: Timed out waiting for app to launch
2014-01-16 11:10:47.557 IAA Host[150:60b] 11:10:47.557 ERROR: [0x3b2e718c] >audiocomp> 59: null from factory proc
2014-01-16 11:10:47.559 IAA Host[150:60b] error -1 from AUGraphAddNode (hostGraph, &desc, &instrumentNode)
Я тщательно проверил мой PLIST, и он идет, как:
<plist version="1.0">
<dict>
<key>AudioComponents</key>
<array>
<dict>
<key>type</key>
<string>aurg</string>
<key>subtype</key>
<string>fld1</string>
<key>manufacturer</key>
<string>fglb</string>
<key>name</key>
<string>appName<string>
<key>version</key>
<integer>1</integer>
</dict>
<dict>
<key>type</key>
<string>auri</string>
<key>subtype</key>
<string>fld1</string>
<key>manufacturer</key>
<string>fglb</string>
<key>name</key>
<string>appName</string>
<key>version</key>
<integer>1</integer>
</dict>
</array>
...
Мой метод публикации:
- (void) publishOutputAudioUnit {
OSStatus result;
const UInt32 version = 1;
//-----------------------
// Publish as Remote Generator
//-----------------------
AudioComponentDescription IAAGeneratorDesc = { kAudioUnitType_RemoteGenerator,'fld1','fglb',0,0 };
result = AudioOutputUnitPublish(&IAAGeneratorDesc, CFSTR("CompanyName : AppName"),version, auRemoteIO);
if (result != noErr)
NSLog(@"AudioOutputUnitPublish generator result: %d", (int)result);
//-----------------------
// Publish as Remote Instrument
//-----------------------
AudioComponentDescription IAARemoteDesc = { kAudioUnitType_RemoteInstrument,'fld1','fglb',0,0 };
result = AudioOutputUnitPublish(&IAARemoteDesc, CFSTR("CompanyName : AppName"),version,auRemoteIO);
if (result != noErr)
NSLog(@"AudioOutputUnitPublish instrument result: %d", (int)result);
}
Похоже, есть некоторые вопросы, URL между хостом и узлом, но я просто не могу понять это.
Любая помощь будет очень, очень, очень приветствуется, поскольку я действительно застрял. Большое спасибо.
André