alexbw / novocaine

Painless high-performance audio on iOS and Mac OS X
http://alexbw.github.com/novocaine/
MIT License
2.23k stars 273 forks source link

Multiple runs of file write example gives error -48 duplicate filename on second execution and all following #30

Closed ghost closed 12 years ago

ghost commented 12 years ago

Hi

When I uncomment the filewrite example code in the demo view controller, on the first run everything is fine, but on the second run,

CheckError(ExtAudioFileCreateWithURL(audioFileRef, kAudioFileM4AType, &outputFileDesc, NULL, 0, &_outputFile), "Creating file");

exits the app with error code -48, which is declared in MacErrors.h as duplicate filename.

I will try to find a work around this and post it here.

best

ghost commented 12 years ago

My quick workaround for this is:

in AudioFileWriter.m

just above the line with CheckEroor(ExtAudioFileCreateWithURL... i added the following code which removes the file if it already exists:

if ([[NSFileManager defaultManager] fileExistsAtPath:[urlToAudioFile path]]) { [[NSFileManager defaultManager] removeItemAtURL:urlToAudioFile error:nil] ; }

ghost commented 12 years ago

but here is a much better solution, this should go into the rep

CheckError(ExtAudioFileCreateWithURL(audioFileRef, kAudioFileM4AType, &outputFileDesc, NULL, kAudioFileFlags_EraseFile, &_outputFile), "Creating file");

kAudioFileFlags_EraseFile does the trick, currently 0 is passed for flags.

alexbw commented 12 years ago

This is a great addition. Make a pull request, I'll roll it in.

On Tuesday, August 21, 2012 at 7:23 AM, sn-e5 wrote:

My quick workaround for this is:
in
(id)initWithAudioFileURL:(NSURL *)urlToAudioFile samplingRate:(float)thisSamplingRate numChannels:(UInt32)thisNumChannels

just above the line with CheckEroor(ExtAudioFileCreateWithURL... i added the following code which removes the file if it already exists:
if ([[NSFileManager defaultManager] fileExistsAtPath:[urlToAudioFile path]]) { [[NSFileManager defaultManager] removeItemAtURL:urlToAudioFile error:nil] ;
}

— Reply to this email directly or view it on GitHub (https://github.com/alexbw/novocaine/issues/30#issuecomment-7898177).

ghost commented 12 years ago

hi alex, did the pull request, my first ever ;). btw, thank you for your awesome work, it is extremely useful to me.

alexbw commented 12 years ago

Roger that, I'll test the commit and merge it in. Glad you dig the project!

On Tuesday, August 21, 2012 at 7:57 AM, sn-e5 wrote:

hi alex, did the pull request, my first ever ;). btw, thank you for your awesome work, it is extremely useful to me.

— Reply to this email directly or view it on GitHub (https://github.com/alexbw/novocaine/issues/30#issuecomment-7898786).

alexissmirnov commented 12 years ago

Sent from a phone.

On 2012-08-21, at 7:12 AM, sn-e5 notifications@github.com wrote:

Hi

When I uncomment the filewrite example code in the demo view controller, on the first run everything is fine, but on the second run,

CheckError(ExtAudioFileCreateWithURL(audioFileRef, kAudioFileM4AType, &outputFileDesc, NULL, 0, &_outputFile), "Creating file");

exits the app with error code -48, which is declared in MacErrors.h as duplicate filename.

I will try to find a work around this and post it here.

best

— Reply to this email directly or view it on GitHub.