Ses çalma işlemi başlatılmadan önce "Home" (Ana Sayfa) düğmesine basılırsa, ses çalma için OpenAL kullanan ve sesini kaybetme sorununu yaşayan bir OpenGL 3D oyunu oluşturdum. Sesli oturum kesme işleyicisine bağlanmayı denedim, ancak geri aramam asla aranmıyor. Uygulamamı en aza indirir veya en üst düzeye çıkarırsam fark etmez. "OpenALInterruptionListener", asla çağrılmıyor.Ses kesintileri nasıl düzgün yapılır?
Neyi yanlış yapıyorum?
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/ yeniden başlatmadan-openal-sonrası uygulamaya-mudahale-on-the-iphone /) – james82345