2012-05-15 10 views
1

我正在開發具有多個AVAudioPlayer和一個AVAudioRecorder的iPad應用程序。這個想法是播放主要AvAudioPlayer的聲音,如背景音樂,觸摸不同的按鈕播放其他AV​​AudioPlayers與背景音樂混合的聲音。混合音樂將由AVAudioRecorder錄製。使用AVAudioRecorder和AVAudioSessionCategoryPlayAndRecord忽略麥克風輸入

對於我實現和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]; 

一切工作正常,但麥克風輸入它記錄過了,這是不正常的我。

問的是,我怎麼能忽略/替換/消除我的錄音過程中的麥克風輸入?

我谷歌很長一段時間,並在AVAudioSession類別和模式,AVAudioRecorder設置Apple文檔搜索,並沒有爲我工作。

我也搜索靜音麥克風,但我讀到這是不可能在iOS設備上。

在此先感謝您的幫助,並對編寫英文的錯誤感到抱歉。

+0

hmm,AVAudioSessionCategoryPlayAndRecord適用於實際需要從麥克風錄音。如果你實際上只是想混合各種來源並將結果保存到文件中,那麼沒有什麼能阻止你。那不會算作錄音。 – hooleyhoop

回答

0

AVAudioRecorder API僅用於從麥克風錄音。

要創建應用程序製作的任何聲音的音頻文件,應用程序必須在軟件(混音器音頻單元或您自己的DSP代碼)中進行音頻混合,然後根據需要進行壓縮並保存所產生的音頻流。

+0

就是這樣。問題是選擇AVAudioRecorder。我將更換爲音頻單元混音器。非常感謝。 – cuicmex