0

iTunes以外のソフトウェアまたはAudioFileOptimize()を使用してafconvertで作成されたAACファイル(.m4a)をプログラムで最適化しようとしています。

ただし、読み取り/書き込み権限でAudioFileOpenを実行しようとすると、エラーが発生します。POSIXアクセス許可を手動で0666(すべてのユーザーのr / w)に設定した場合でも、読み取りアクセス許可でのみ開くことができます。

ここで説明する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 Servicesは、特定のファイルへの書き込みアクセスを許可しません。

ただし、次のような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 に答える