2012-07-16 82 views
0

我试图以编程方式优化由iTunes以外的软件创建的AAC文件(.m4a),或者使用AudioFileOptimize()转换为afconvert。AudioFileOpen不能以读取/写入权限打开

但是,当我试图做一个AudioFileOpen读/写权限,它给了我一个错误。即使我手动将POSIX权限设置为0666(每个人都是r/w),我也只能打开读取权限。

我正在使用AudioFileOpenUrl方法here并取回'prm?' (kAudioFilePermissionsError)。

下面是引发错误的代码:

#import <Cocoa/Cocoa.h> 
#import <CoreFoundation/CoreFoundation.h> 
#import <AudioToolbox/AudioToolbox.h> 
#import "CAXException.h" 



int main(int argc, const char * argv[]) 
{ 

    int result = 0; 

    try { 

    //optimize the output file: 
    AudioFileID outfile; 

    NSURL *outputFileURL = [NSURL fileURLWithPath:@"/DIR/PATH TO.m4a"]; 

    OSStatus err = AudioFileOpenURL((__bridge CFURLRef)outputFileURL, kAudioFileReadWritePermission, 0, &outfile); 
    XThrowIfError(err, "AudioFileOpenURL"); 

    err = AudioFileOptimize(outfile); //Optimize the file 
    XThrowIfError(err, "AudioFileOptimize"); 

    err = AudioFileClose(outfile); 
    XThrowIfError(err, "AudioFileClose"); 

    } catch (CAXException e) { 
     char str[32]; 
     printf ("CAXException thrown from CoreAudioConverter.mm. : %s, %s\n", e.FormatError(str), e.mOperation); 
     result = 1; 
    } catch (...) { 
     result = 1; 
    } 

    return result; 
} 

此输出:

CAXException thrown from CoreAudioConverter.mm. : 'prm?', AudioFileOpenURL 

如果有人可以帮助,这将是真棒!

Side-note,有没有人通过编程向aac文件添加流提示?

谢谢!

回答

2

的AudioFile服务将不允许某些文件的写访问:

There is however a limitation when working with MPEG-4 file types which include; .mp4 (kAudioFileMPEG4Type), .m4a (kAudioFileM4AType), .3g2 (kAudioFile3GP2Type) and .3gp (kAudioFile3GPType).

AudioFile does not currently support writing to existing files of these types.

参见: http://developer.apple.com/library/mac/#qa/qa1676/_index.html