Пометка метаданных фильма QT с помощью QTKit - PullRequest
1 голос
/ 21 июля 2011

Я пытаюсь сделать метки некоторых метаданных для некоторых видеофайлов с помощью QTKit.У меня есть вещи для пометки атома, которые принимают строку в качестве значения, но с трудом устанавливают атомы, которые принимают 8-битное целое число в качестве аргумента.Вот что я получил прямо сейчас из документации Apple и других различных источников в Интернете:

-(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);
    }
}
}

Таким образом, атом «стик» задает вид видео в iTunes.Если я хочу указать видео как телешоу, мне нужно присвоить ему значение 10. Если я отправляю @ "10" этому методу, я не получаю никаких ошибок, но видеофайл также не помечен должным образом.

Я уверен, что часть моей проблемы в том, что я пропустил изучение C и сразу перешел к Цели C, поэтому, когда мне нужно погрузиться в C, вот у меня проблемы.

...