2013-07-21 47 views
1

我從Novocaine的示例項目輸出一個m4a文件。但我無法在iTunes中打開文件。該文件可能已損壞。Novocaine:保存的音頻文件不起作用

NSArray *pathComponents = [NSArray arrayWithObjects: 
           [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject], 
           @"My Recording.m4a", 
           nil]; 
NSURL *outputFileURL = [NSURL fileURLWithPathComponents:pathComponents]; 
NSLog(@"URL: %@", outputFileURL); 

self.fileWriter = [[AudioFileWriter alloc] 
        initWithAudioFileURL:outputFileURL 
        samplingRate:self.audioManager.samplingRate 
        numChannels:self.audioManager.numInputChannels]; 


__block int counter = 0; 
self.audioManager.inputBlock = ^(float *data, UInt32 numFrames, UInt32 numChannels) { 
    [wself.fileWriter writeNewAudio:data numFrames:numFrames numChannels:numChannels]; 
    counter += 1; 
    if (counter > 800) { // roughly 5 seconds of audio 
     wself.audioManager.inputBlock = nil; 
    } 
}; 

我沒有更改代碼,只是刪除了註釋。

如果您知道可能的解決方案或建議,我想知道您是否可以與我分享。

奴佛卡因https://github.com/alexbw/novocaine

回答

4

這個問題在這裏討論: https://github.com/alexbw/novocaine/issues/59

原代碼終止記錄本線(處理塊內):

wself.audioManager.inputBlock = nil; 

我得到了它的工作立即添加此行:

[wself.fileWriter stop]; 

AudioFileWriter的stop方法是私有的,所以它也需要添加到公共接口。

+0

它太棒了!謝謝 ) –