在iphone中离线录音

时间:2010-06-09 11:13:34

标签: iphone-sdk-3.0 audio-recording mixing

我正在iphone中开发音乐混音应用程序。它将混合音乐,用户可以从中创作出新的音乐。我需要录制这首最后的音乐。我曾用过AVAudiorecorder录制这个。但没有变化。它可以录制麦克风的声音,但我需要录制应用声音。

我曾使用音频队列回叫功能来录制音频。但是当应用程序运行时,我可以听到来自我的应用程序的音频,但我听不到录制音频的任何声音。录音没有问题,因为我可以听到通过麦克风录制的音频。但是我需要一个可以录制iphone音频输出的离线录音机,而不是通过麦克风输入音频。我需要一台可以使用ipod touch(无麦克风)录制音频的录音机。

任何帮助?

1 个答案:

答案 0 :(得分:0)

我以另一种方式找到了解决方案。我曾经使用过包含两个音频单元的音频图表。数字调音台和输出音频单元。我用六个声道创建了混音器,这样我就可以同时演奏六个乐器。当用户编写音乐时,我将保存内容,在离线录制过程中,我会将保存的乐器排序到调音台。

为了获得更好的性能,我会在加载新的音频或乐器文件时停止音频图表。 加载文件后,录制将再次恢复。

在调音台的输入播放功能中,根据输入的总线编号,音频数据包将被送入调音台。在输出音频单元的输入回放中,分配新缓冲器以存储混频器输出。混音器输出是使用音频渲染功能创建的。由于我没有修改音频输入缓冲区,因此应用程序外部没有声音。最后我有一台离线录音机。

步骤

  1. 使用录制和播放模式创建音频会话
  2. 使用调音台和音频输出单元创建音频图表。
  3. 配置调音台通道或输入总线编号(音频流的数量)。
  4. 为调音台和音频设备创建输入播放方法。
  5. 将源和目标音频格式配置为音频单元输入和输出总线。
  6. 使用目标格式创建音频文件(对于AAC编码检查,支持AAC编码)。
  7. 获取音频文件并开发一种方法,为指定的频道提供音频数据包。
  8. 在混音器的音频输入播放中配置音频文件提取。
  9. 在输出单元的音频输入播放中,使用音频渲染功能在新的音频缓冲区中获取混音器输出。将音频缓冲区存储到打开的音频文件中。
  10. 使用音频图表停止录制并使用音频图表启动方法恢复录制。在此间隔期间,配置新的声音文件提取。
  11. 最后停止录制并关闭音频文件。