1

我正在开发需要在播放音乐时录制音频的应用程序。我可以成功地用音乐录制声音。但我无法从音乐中删除人声。如果我能在人声上升时降低音量,那也很棒。

我在播放音乐时使用 AVAudioSession、AVAudioPlayerNode 进行录制。

任何帮助将不胜感激。

4

1 回答 1

0

在 WWDC14 session #502 “AVAudioEngine in Practice”中,您可以找到如何AVAudioEngine为 Karaoke 进行配置,这对您的任务有好处,您还可以找到有关节点点击的信息。节点 tap 可以捕获来自任何AVAudioNode.

因此,您可以为您添加节点点击AVAudioInputNode并记录您需要的所有内容:

AVAudioInputNode *node = [engine inputNode];    
// add tap
[node installTapOnBus:0 bufferSize:4096 format[node outputFormatForBus:0] block:^(AVAudioPCMBuffer *buffer, AVAudioTime *when) {
    // save audio buffer
}];
于 2015-10-03T12:48:22.733 回答