在基于OpenAL的音序器应用程序中录制生成的音频

时间:2013-06-03 14:22:44

标签: ios audio core-audio audio-recording openal

我有一个音序器样式的应用程序,播放小的,预先录制的wav文件。用户可以设置节拍,旋律等。它都是基于OpenAL构建的,它可以很好地同时播放大量样本并保持输出不被削波。

我想创建一个录制功能,将输出的音频录制到用户可以保存,共享等文件中。似乎录制麦克风输入很简单,但在将所有内容混合在一起后录制系统音频远不那么琐碎。 OpenAL允许我点击输出流并将其复制到文件中吗?我是否需要连接到remoteIO音频单元,如果是这样,是否意味着转储OpenAL并使用Core Audio和Audio Units重新编写所有内容?

我似乎无法在这个主题上找到很多东西,并且考虑到有多少音乐创作应用程序,我很惊讶这并没有在某个地方被删除。我希望,如果不是一个明确的答案,至少有人指出我正确的方向。

这是我的“播放声音”方法的样子,以防它有用。

ALenum err = alGetError();

NSNumber * numVal = [self.soundDictionary objectForKey:soundKey];
NSUInteger bufferID = [numVal unsignedIntValue];

NSUInteger sourceID = [self nextAvailableSource];

alSourcei(sourceID, AL_BUFFER, 0);
alSourcei(sourceID, AL_BUFFER, bufferID);
alSourcef(sourceID, AL_PITCH, 1.0);
alSourcef(sourceID, AL_GAIN, .6);

err = alGetError();
if (err != 0) {
    NSLog(@"OpenAL play sound error!!");
}

alSourcePlay(sourceID);

0 个答案:

没有答案