私はOpenALを使ってオーディオ再生を行い、オーディオデバイスが初期化される前に「ホーム」ボタンが押されるとオーディオを失う問題を経験しました。オーディオセッションの割り込みハンドラに接続しようとしましたが、私のコールバックは決して呼び出されません。私のアプリケーションを最小化または最大化しても問題ありません。私の "OpenALInterruptionListener"は決して呼び出されません。オーディオの中断を正しく処理する方法は?
私は間違っていますか?
AudioSessionInitialize(NULL, NULL, OpenALInterriptionListener, this);
void OpenALInterriptionListener(void * inClientData, UInt32 inInterruptionState)
{
OpenALDevice * device = (OpenALDevice *) inClientData;
if (inInterruptionState == kAudioSessionBeginInterruption)
{
alcSuspendContext(_context);
alcMakeContextCurrent(_context);
AudioSessionSetActive(false);
}
else if (inInterruptionState == kAudioSessionEndInterruption)
{
UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
AudioSessionSetActive(true);
alcMakeContextCurrent(_context);
alcProcessContext(_context);
}
}
[http://benbritten.com/2009/02/02/restarting-openal-after-application-interruption-on-the-iphone/](http://benbritten.com/2009/02/02/)アプリケーションの中断 - アプリケーションの中断、アプリケーションの中断、再開 - iphone /) – james82345