我正在使用一个我不太熟悉的音频引擎。它是一个来自Apple示例项目(SoundEngine.cpp)的引擎。它使用OpenAL来播放声音效果和音乐,我在任何地方都看不到使用AVAudioSessionCategorySoloAmbient
或kAudioSessionCategory_SoloAmbientSound
或任何其他类别初始化音频会话。
我想要做的是让用户的音乐继续在后台播放,但我没有看到任何可以插入该行来设置类别的地方。
基本上,初始化代码是:
mDevice = alcOpenDevice(NULL);
mContext = alcCreateContext(mDevice, NULL);
alcMakeContextCurrent(mContext);
并且第三行是用户音乐淡出的地方。它甚至无处引用整个文件中的音频会话。有什么想法吗?
答案 0 :(得分:1)
在OpenAL设置之前,您需要初始化音频会话并设置适当的标志:
AudioSessionInitialize(NULL,NULL,_callback,_userdata);
UInt32 category = kAudioSessionCategory_AmbientSound;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,sizeof(category),& category);
您可以找到更多here,包括有关处理中断的信息。