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

发布于 2024-09-01 07:51:45 字数 513 浏览 2 评论 0原文

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

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

本质上,初始化代码是:

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

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


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

I'm using an audio engine I'm not too familiar with. It's an engine that came from an Apple example project (SoundEngine.cpp). It uses OpenAL to play sound effects and music, and nowhere do I see it initializing an audio session with AVAudioSessionCategorySoloAmbient or kAudioSessionCategory_SoloAmbientSound or any other categories.

What I want to do is allow the user's music to continue to play in the background, but I don't see anywhere where I can insert the line to set the category.

Essentially, the initialization code is:

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

and the third line is where the user's music fades out. There's nowhere that it even references audio sessions in the entire file. Any ideas?


Apparently, you can't. At least, not with the OS version I'm targeting. Not sure about later OS versions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你好,陌生人 2024-09-08 07:51:45

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

AudioSessionInitialize(NULL, NULL, _callback, _userdata);

UInt32 类别 = kAudioSessionCategory_AmbientSound;

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

您可以在此处了解更多信息,包括有关处理中断的信息。

Before your OpenAL setup, you need to init your audio session and set the appropriate flags:

AudioSessionInitialize(NULL, NULL, _callback, _userdata);

UInt32 category = kAudioSessionCategory_AmbientSound;

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

You can find out more here, including info about handling interruptions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文