我正在尝试以编程方式优化由 iTunes 以外的软件或使用 AudioFileOptimize() 的 afconvert 创建的 AAC 文件 (.m4a)。
但是,当我尝试使用读/写权限执行 AudioFileOpen 时,它给了我一个错误。即使我手动将 POSIX 权限设置为 0666(每个人都可以读/写),我也只能以读取权限打开。
我正在使用此处描述的AudioFileOpenUrl方法并返回“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
如果有人可以提供帮助,那就太棒了!
旁注,是否有人以编程方式向 aac 文件添加流式提示?
谢谢!