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

Posted

技术标签:

【中文标题】如何将来自 OpenAL 的音频与 iPod 音乐混合?【英文标题】:How can I blend audio from OpenAL with iPod music? 【发布时间】:2010-05-11 16:26:15 【问题描述】:

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

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

本质上,初始化代码是:

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

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


显然,你不能。至少,不是我所针对的操作系统版本。不确定以后的操作系统版本。

【问题讨论】:

【参考方案1】:

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

AudioSessionInitialize(NULL, NULL, _callback, _userdata);

UInt32 类别 = kAudioSessionCategory_AmbientSound;

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

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

【讨论】:

This is outlined in the Audio Session Cookbook

以上是关于如何将来自 OpenAL 的音频与 iPod 音乐混合?的主要内容,如果未能解决你的问题,请参考以下文章

IOS - 从 Ipod 访问音频流、暂停和更改音量

使用 OpenAL 将音频转换为 CAF 格式以便在 iPhone 上播放

使用 FFmpeg 或 OpenAL 的音频均衡器

同时录制音频和播放 iPod?

CoreAudio/OpenAL:如何获取传出的音频信号

如何在 iPod 仍在播放音频时将 iOS 上的视频静音?