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

问题描述:

我目前正试图让我的iOS应用的传出音频信号能够将其发送给Audiobus。我需要传出的AudioBufferLists能够路由它们。我正在使用OpenAL进行音频播放。CoreAudio/OpenAL:如何获取传出音频信号

最好的情况是,我甚至可以修改传出信号以对其施加影响。

+0

我发现这个问题也看如何得到一个OpenAL应用程序输出到Audiobus的信息。希望有人帮助 – johnbakers 2013-03-22 20:31:53

+0

感觉真的很好,也有人尝试这样做,无法在文档中找到答案。我也在Audiobus论坛发布了这个问题,但到目前为止没有回答:http://heroes.audiob.us/discussion/100/openal-send-to-audiobus#Item_1 编辑:我实际上使用的是CocosDenshion,它是一个OpenAL包装 - 如果有帮助的话。 – Max 2013-03-22 22:53:16

目前似乎没有公共API来访问iOS应用程序中的OpenAL输出。

如果您需要输出,您将需要使用另一个音频API来播放声音,例如带有未压缩原始PCM音频的音频队列或RemoteIO音频单元,以便能够获取音频输出缓冲区。

+0

在Audiobus论坛上,有人向我建议:http://*.com/questions/10756972/sound-capture-with-openal-on-ios - 我没有时间去测试它。 – Max 2013-03-25 01:22:13

+0

ObjectAL具有录制功能,但它表示“iOS不支持”。这是由于OpenAL还是只是没有实现? https://github.com/kstenerud/ObjectAL-for-iPhone/blob/master/ObjectAL/ObjectAL/OpenAL/ALCaptureDevice.m – Max 2013-03-25 03:12:07

这家伙如何使自己的混音对象OpenAL的,所以他可以做到这一点,你可能想看看:

http://www.cuppadev.co.uk/openal-sucks-write-your-own-audio-mixer/

+1

谢谢,也许我联系了这个人并问他,因为他似乎只是表明了他的基本思想。 – Max 2013-03-25 01:24:52

而不是使用OpenAL的,你可以与3D调音台音频使用CoreAudio的单位(kAudioUnitSubType_AU3DMixerEmbedded)。然后你可以控制你输出的位置。显然,这样做会牺牲一些可移植性(Mac OS X可以使用,但不适用于Windows,Linux或Android)。