我正在开发需要在播放音乐时录制音频的应用程序。我可以成功地用音乐录制声音。但我无法从音乐中删除人声。如果我能在人声上升时降低音量,那也很棒。
我在播放音乐时使用 AVAudioSession、AVAudioPlayerNode 进行录制。
任何帮助将不胜感激。
我正在开发需要在播放音乐时录制音频的应用程序。我可以成功地用音乐录制声音。但我无法从音乐中删除人声。如果我能在人声上升时降低音量,那也很棒。
我在播放音乐时使用 AVAudioSession、AVAudioPlayerNode 进行录制。
任何帮助将不胜感激。
在 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
}];