私が開発したiOSアプリを、デバイス上のXCodeからビルドして実行すると、正常に動作するという奇妙な問題があります。ただし、デバイスを再起動してアプリを実行すると、音声がまったく聞こえません。その後、アプリを強制終了してデバイスから再起動すると、オーディオの取得が再開されます。最初は割り込みハンドラの問題だと思っていましたが、もうわかりません。どんな助けでもいただければ幸いです!
念のため、これが私の割り込みハンドラです。
static void MyInterruptionListener (void *inUserData,
UInt32 inInterruptionState) {
printf ("Interrupted! inInterruptionState=%ld\n", inInterruptionState);
pediViewController *pediController = (__bridge pediViewController*)inUserData;
switch (inInterruptionState) {
case kAudioSessionBeginInterruption:
CheckError (AudioOutputUnitStop (pediController.effectState.rioUnit),
"Couldn't start RIO unit");
case kAudioSessionEndInterruption:
// TODO: doesn't work!
CheckError(AudioSessionSetActive(true),
"Couldn't set audio session active");
CheckError (AudioOutputUnitStart (pediController.effectState.rioUnit),
"Couldn't start RIO unit");
break;
default:
break;
};
}