我试图找到一些在iOS中播放动态创建音调的方法。能够播放音频文件并不能为我剪掉它。我需要更精细的控制。我知道有一些方法可以处理单个数据包级别的音频流,如果我有办法创建音频数据包,这对我有用。如果有人甚至有一些好的指针或地方可以获取更多信息,我会很感激。
答案 0 :(得分:3)
当然Matt Gallagher使用RemoteIO音频单元编写了一个音源。
http://cocoawithlove.com/2010/10/ios-tone-generator-introduction-to.html
答案 1 :(得分:2)
您可能想要的是使用AudioQueue。它是音频堆栈中的一个API,但允许您生成所需的任何音频。我在应用程序SC68播放器中使用它来为Atari ST声音芯片模拟器生成音频流,从80年代的游戏和场景演示中播放旧音乐。
基本理念是:
AudioQueueNewOutput()
AudioQueueStart()
/ AudioQueueStart()
。回调看起来像这样:
static void AudioQueueCallback(void* inUserData,
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer)
{
[soundGenerator fillNextFrameBuffer:inBuffer->mAudioData
size:inBuffer->mAudioDataBytesCapacity];
inBuffer->mAudioDataByteSize = inBuffer->mAudioDataBytesCapacity;
AudioQueueEnqueueBuffer(inAQ, inBuffer, 0, NULL);
}