C 使用QTKit标记QT电影元数据

C 使用QTKit标记QT电影元数据,c,xcode,qtkit,C,Xcode,Qtkit,我正在尝试使用QTKit对一些视频文件进行元数据标记。我已经为以字符串为值的原子做了标记,但很难设置以8位整数为参数的原子。以下是我现在从苹果的文档和互联网上的其他各种来源获得的信息: -(void) setMediaKind: (NSString *) value { QTMetaDataRef metaDataRef; Movie theMovie; OSStatus status; theMovie = [movie quickTimeMovie];

我正在尝试使用QTKit对一些视频文件进行元数据标记。我已经为以字符串为值的原子做了标记,但很难设置以8位整数为参数的原子。以下是我现在从苹果的文档和互联网上的其他各种来源获得的信息:

-(void) setMediaKind: (NSString *) value
{
QTMetaDataRef   metaDataRef;
Movie           theMovie;
OSStatus        status;

theMovie = [movie quickTimeMovie];
status = QTCopyMovieMetaData (theMovie, &metaDataRef );
NSAssert(status == noErr,@"QTCopyMovieMetaData failed!");

if (status == noErr)
{
    int intValue = NSSwapHostIntToBig([(NSNumber *)value intValue]);
    UInt8 *dataValuePtr = (UInt8*)(&intValue);
    ByteCount dataSize = sizeof(int);

    if (dataValuePtr)
    {
        OSType key = 'stik';
        QTMetaDataItem outItem;
        status = QTMetaDataAddItem(metaDataRef,
                                   kQTMetaDataStorageFormatiTunes, 
                                   kQTMetaDataKeyFormatiTunesShortForm,
                                   (const UInt8 *)&key,
                                   sizeof(key),
                                   dataValuePtr,
                                   dataSize,
                                   kQTMetaDataTypeSignedIntegerBE,
                                   &outItem);
        NSAssert(status == noErr,@"QTMetaDataAddItem failed!");

        char langCodeStr[] = "en";
        status = QTMetaDataSetItemProperty(
                                           metaDataRef,
                                           outItem,
                                           kPropertyClass_MetaDataItem,
                                           kQTMetaDataItemPropertyID_Locale,
                                           strlen(langCodeStr) + 1,
                                           langCodeStr);
    }
}
}
因此atom“stik”在iTunes中设置了视频类型。如果我想将视频指定为电视节目,我需要将其赋值为10。如果我将@10发送到此方法,我不会得到任何错误,但视频文件也没有正确标记

我确信我的问题的一部分是我跳过了学习C,直接进入了目标C,所以当我必须像这样深入到C时,我会遇到问题