0

我正在尝试以编程方式优化由 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 文件添加流式提示?

谢谢!

4

1 回答 1

1

AudioFile 服务将不允许对某些文件进行写入访问:

但是,在使用 MPEG-4 文件类型时存在限制,其中包括:.mp4 (kAudioFileMPEG4Type)、.m4a (kAudioFileM4AType)、.3g2 (kAudioFile3GP2Type) 和 .3gp (kAudioFile3GPType)。

AudioFile 目前不支持写入这些类型的现有文件。

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

于 2013-02-20T19:50:29.960 回答