如何将OpenAL的音频与iPod音乐混合?

时间:2010-05-11 16:26:16

标签: iphone openal

我正在使用一个我不太熟悉的音频引擎。它是一个来自Apple示例项目(SoundEngine.cpp)的引擎。它使用OpenAL来播放声音效果和音乐,我在任何地方都看不到使用AVAudioSessionCategorySoloAmbientkAudioSessionCategory_SoloAmbientSound或任何其他类别初始化音频会话。

我想要做的是让用户的音乐继续在后台播放,但我没有看到任何可以插入该行来设置类别的地方。

基本上,初始化代码是:

mDevice = alcOpenDevice(NULL);
mContext = alcCreateContext(mDevice, NULL);
alcMakeContextCurrent(mContext);

并且第三行是用户音乐淡出的地方。它甚至无处引用整个文件中的音频会话。有什么想法吗?


显然,你做不到。至少,不是我的目标操作系统版本。不确定以后的OS版本。

1 个答案:

答案 0 :(得分:1)

在OpenAL设置之前,您需要初始化音频会话并设置适当的标志:

AudioSessionInitialize(NULL,NULL,_callback,_userdata);

UInt32 category = kAudioSessionCategory_AmbientSound;

AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,sizeof(category),& category);

您可以找到更多here,包括有关处理中断的信息。