我想用iphone录制音频(<2分钟)并将其保存到文件中.我看着SpeakHere,但它让我很困惑.我使用哪些课程?我创建了哪些委托方法?
谢谢!
我同意,SpeakHere不是一个学习iPhone音频的好起点.
iPhone音频使用两个概念.AudioQueues和AudioSessions.如果要录制到文件,则需要创建一个AudioSession,激活会话,并创建AudioInputQueue和AudioOutputQueue.
AudioQueues的参考(到目前为止你将讨论最多的部分)是:
http://developer.apple.com/iphone/library/documentation/MusicAudio/Conceptual/AudioQueueProgrammingGuide/Introduction/Introduction.html
至于AudioSessions:
http://developer.apple.com/iphone/library/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Introduction/Introduction.html
虽然你可以忽略大部分AudioSession的东西,因为你不会做那么复杂的事情.所以基本上,这里是步骤:
使用AudioInterrupt回调初始化音频会话.此回调处理来电的情况,中断您的程序.
设置传入音频和文件绑定音频的数据格式.它存储在名为AudioStreamBasicDescripion的结构中.
创建一个AudioQueue对象并使用AudioQueueNewInput对其进行初始化.您必须指定一个回调来处理传入的音频.这将是您可以指定将音频保存到文件的位置,但要注意,这是一个实时线程,您必须尽可能地尝试阻止它太长时间.
定义录制系统将具有多少AudioQueueBuffers.这些缓冲区根据您在步骤2中指定的采样率进行填充.您必须调整这些缓冲区,以便在下一个缓冲区到达之前有足够的时间进行处理.
AudioSessionSetActive(YES);
AudioQueue上的AudioQueueStart.
我没有在这里包含所有参数,但这就是API的用途.
希望有所帮助.
[编辑]
对不起,忘了包含输出内容,虽然它们非常简单.创建另一个AudioQueue,使用AudioQueueNewOutput进行初始化,API应该能够引导您完成剩下的工作.
干杯.