我有一个音序器样式的应用程序,播放小的,预先录制的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);