2011-01-27 83 views
2

我有一個初始化爲:AVAudioRecorder記錄方法中的設備,但工作失敗在模擬器

bool b; 
NSLog(@"url"); 
NSURL *url = [NSURL fileURLWithPath:@"/dev/null"]; 
NSLog(@"dizionario"); 
NSDictionary *audioSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
    [NSNumber numberWithFloat: 44100.0],     AVSampleRateKey, 
    [NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey, 
    [NSNumber numberWithInt: 1],       AVNumberOfChannelsKey, 
    [NSNumber numberWithInt: AVAudioQualityMax],   AVEncoderAudioQualityKey, 
    nil]; 

NSError *error; 

recorder = [[AVAudioRecorder alloc] initWithURL:url settings:audioSettings error:&error]; 
NSLog(@"audio"); 
if (recorder) { 
//NSLog(@"prepara"); 
[recorder prepareToRecord]; 
//NSLog(@"meter"); 
recorder.meteringEnabled = YES; 
//NSLog(@"recorder"); 
b=[recorder record]; 
        NSLog(@"%@",(b ? @"OK" : @"here it FAILS")); 

} else { 
NSLog(@"ERRORE:"); 
NSLog([error description]); 
} 
//NSLog(@"fine init"); 

如我使用[錄音機記錄]失敗。 我怎麼知道爲什麼這個方法失敗? 我如何管理這個問題? 感謝

回答

0

我寫了一個類似的問題,但發現我的回答here,發佈之前。你可以在設備上寫入「/ dev/null」嗎?那裏是一個目錄嗎?請務必在提問之前:-(搜索答案。

+0

在提問之前,我已經討論過這個話題。不幸的是...我有另一個應用程序,使用相同的指令做同樣的事情,並運行良好。所以我認爲這可能是一些衝突或其他的東西...我試圖評論部分代碼,但直到現在沒有成功。 – sefiroths 2011-01-31 13:46:17

+0

@sefiroths好的 - 你應該在你的問題中包含這個信息。我實際上有一個[類似的問題](http://stackoverflow.com/questions/4861871/avaudiorecorder-preparetorecord-works-but-record-fails)。我建議你考慮一下你正在做什麼其他音頻的東西可能會干擾... – iPadDeveloper2011 2011-02-07 23:17:46

1

你必須設置你的AVAudioSession。 看這link它可以幫助你我的想法。

而且不要忘了激活您的AVAudioSession在你的代碼,如果你使用記錄,並在同一個應用程序中播放。

2

我也被遇到的問題,我可以在模擬器上記錄而不是設備。改爲使用NSTemporaryDirectory()爲我工作。

recordPath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"Sound.m4a"]; 
NSURL *url = [NSURL fileURLWithPath:recordPath]; 
相關問題