gpt4 book ai didi

c++ - 如何正确处理音频中断?

转载 作者:IT老高 更新时间:2023-10-28 23:21:33 25 4
gpt4 key购买 nike

我创建了一个使用 OpenAL 进行音频播放的 OpenGL 3D 游戏,如果在初始化音频设备之前按下“主页”按钮,则会遇到音频丢失的问题。我试图连接到 Audio Session 中断处理程序,但我的回调永远不会被调用。无论我是最小化还是最大化我的应用程序。我的“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);
}
}

最佳答案

请注意,目前存在音频中断和 IOS 问题。中断通知很好,但结束音频中断通知并不总是有效。苹果对此有一个错误,他们没有回应。

关于c++ - 如何正确处理音频中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10624797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com