我用的是一个我不太熟悉的音频引擎。它是一个来自苹果示例项目(soundengine.cpp)的引擎。它使用Openal来播放音效和音乐,我看不到它用什么来初始化音频会话 AVAudioSessionCategorySoloAmbient 或 kAudioSessionCategory_SoloAmbientSound 或任何其他类别。
AVAudioSessionCategorySoloAmbient
kAudioSessionCategory_SoloAmbientSound
我要做的是允许用户的音乐继续在后台播放,但我看不到任何可以插入行来设置类别的地方。
基本上,初始化代码是:
mDevice = alcOpenDevice(NULL); mContext = alcCreateContext(mDevice, NULL); alcMakeContextCurrent(mContext);
第三行是用户音乐淡出的地方。在整个文件中,它甚至没有引用音频会话的地方。有什么想法吗?
显然,你不能。至少,我的目标不是操作系统版本。不确定更高版本的操作系统。
在Openal设置之前,您需要初始化音频会话并设置适当的标志:
audiosessioninitialize(空,空,回调,用户数据);
uint32 category=kaudiosessioncategory_环境声音;
audiosessionsetproperty(kaudiosessionproperty_audiocategory,sizeof(category),&category);
你可以找到更多 here 包括处理中断的信息。