0
我剛剛構建並測試了一臺基本的AVAudioRecorder/AVAudioPlayer錄音機和播放器。最終我得到了這個設備上的工作,以及模擬器。我的播放器/錄音機代碼位於單個UIView子類中。不幸的是,當我將課程複製到我的主項目中時,它不再有效(在設備上 - 模擬器很好)。 prepareToRecord
工作正常,但record
不是。這裏是一些代碼:AVAudioRecorder prepareToRecord有效,但錄製失敗
audioRecorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:&error];
if ([audioRecorder prepareToRecord]){
audioRecorder.meteringEnabled = YES;
if(![audioRecorder record])NSLog(@"recording failed!");
}else {
int errorCode = CFSwapInt32HostToBig ([error code]);
NSLog(@"preparedToRecord=NO Error: %@ [%4.4s])" , [error localizedDescription], (char*)&errorCode);
...
我得到「錄製失敗」。任何人有任何想法,爲什麼發生這種情況?
我發現了這個問題。在我的主項目的其他地方,我使用了一個Cocos2d「SimpleAudioEngine」,它有自己的[AVAudioSession sharedInstance]。我的猜測是,這不知何故干擾我的音頻會話設置,例如,這樣:[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];無論如何,當我刪除我的SimpleAudioEngine時,我的記錄器/播放器就起作用了。當然,這給我帶來了另一個問題...... – iPadDeveloper2011 2011-02-01 21:15:47