我正在开发一款带有多个AVAudioPlayer和一个AVAudioRecorder的iPad应用程序。这个想法是播放主要AvAudioPlayer的声音,如背景音乐和触摸不同的按钮播放其他AVAudioPlayers的声音与背景音乐混合。混合音乐将由AVAudioRecorder录制。
为此我实现了AVAudioSession和类AVAudioSessionCategoryPlayAndRecord并使用此设置创建和AVAudioRecorder对象:
NSDictionary *recordSetting = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:kAudioFormatAppleIMA4], AVFormatIDKey,
[NSNumber numberWithInt:AVAudioQualityHigh], AVEncoderAudioQualityKey,
[NSNumber numberWithInt:16], AVEncoderBitRateKey,
[NSNumber numberWithInt: 2], AVNumberOfChannelsKey,
[NSNumber numberWithFloat:44100.0], AVSampleRateKey,
nil];
一切正常,但录制的麦克风输入也是如此,这对我来说还不错。
问题是,如何在录制过程中忽略/替换/消除麦克风输入?
我google很长一段时间,在Apple文档中搜索AVAudioSession类别和模式,AVAudioRecorder设置,对我来说没什么用。
我也搜索静音麦克风,但我读过这在iOS设备上是不可能的。
提前感谢您的帮助,并对写英文的错误感到抱歉。
答案 0 :(得分:0)
AVAudioRecorder API仅用于从麦克风录制。
为了创建应用程序发出的任何声音的音频文件,应用程序必须使用软件(混音器音频单元或您自己的DSP代码)进行音频混合,然后根据需要进行压缩,并保存生成的音频流