2012-07-16 85 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