1

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

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

有什么帮助吗?

4

1 回答 1

0

我以另一种方式找到了解决方案。我使用的音频图由两个音频单元组成。数字混音器和输出音频单元。我创建了带有六个通道的混音器,这样我就可以同时演奏六种乐器。当用户创作音乐时,我会保存内容,在离线录制期间,我会将保存的乐器排序到混音器。

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

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

脚步

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