zono
zono

Reputation: 8584

Novocaine : Saved audio file does not work

I output an m4a file from Novocaine's sample project. But I cannot open the file in iTunes. The file might be corrupted.

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;
    }
};

I did not change the code, just removed comment-out.

If you know possible solutions or suggestions, I was wondering if you could share me.

Novocaine https://github.com/alexbw/novocaine

Upvotes: 1

Views: 489

Answers (1)

fbriggs
fbriggs

Reputation: 41

This issue is discussed here: https://github.com/alexbw/novocaine/issues/59

The original code terminates the recording with this line (inside a handler block):

wself.audioManager.inputBlock = nil;

I got it working by adding this line immediately after:

[wself.fileWriter stop];

The stop method of AudioFileWriter is private, so it is also necessary to add it to the public interface.

Upvotes: 4

Related Questions