Можно ли "пригнуться" к AudioSession при использовании OpenAL?

Кто-нибудь знает, возможно ли это?

У меня есть аудио сеанс и настройка OpenAL следующим образом:

// Allow their music to play in the background
AudioSessionInitialize(NULL, NULL, openALInterruptionListener, (__bridge void *)(self));

UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);

UInt32 allowMixing = false;
AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck, sizeof(allowMixing), &allowMixing);

//      use the device to make a context
_mContext = alcCreateContext(_mDevice, NULL);
//      set my context to the currently active one
alcMakeContextCurrent(_mContext);

И у меня есть установка уток так:

- (void)setSoundDucked:(BOOL)soundDucked
{    
    if(soundDucked)
    {
        UInt32 allowMixing = true;
        AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck,     sizeof(allowMixing), &allowMixing);
        AudioSessionSetActive(false);
        AudioSessionSetActive(true);
    }
    else
    {
        UInt32 allowMixing = false;
        AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck, sizeof(allowMixing), &allowMixing);
        AudioSessionSetActive(false);
        AudioSessionSetActive(true);
    }
}

Однако звук не приглушается. Это будет только утка, если я закомментирую следующие строки:

//      use the device to make a context
_mContext = alcCreateContext(_mDevice, NULL);
//      set my context to the currently active one
alcMakeContextCurrent(_mContext);

Есть ли способ заставить OpenAL хорошо играть со свойством аудио уклонения?

0 ответов

Другие вопросы по тегам