Я пытаюсь сделать метки некоторых метаданных для некоторых видеофайлов с помощью 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, вот у меня проблемы.