2011-09-21 76 views
0

我試圖用quicktime元數據API在.mov文件中設置一些元數據,並將它顯示在iTunes中。我已經爲大多數屬性工作,但我無法獲取描述字段來填充。這裏是我正在使用的代碼(縮短只顯示我認爲是相關部分)。Quicktime元數據API和iTunes

const char* cString = ([@"HELLO WORLD" cStringUsingEncoding:NSMacOSRomanStringEncoding]); 

QTMovie* qtMovie = [[QTMovie alloc] initWithFile:filename error:&error]; 
Movie movie = [qtMovie quickTimeMovie]; 

QTMetaDataRef metaDataRef = NULL; 
OSStatus err = noErr; 
err = QTCopyMovieMetaData(movie, &metaDataRef); 

QTMetaDataItem outItem; 
QTMetaDataAddItem(metaDataRef, 
        kQTMetaDataStorageFormatiTunes, 
        kQTMetaDataKeyFormatCommon, 
        (const UInt8 *)&key, 
        sizeof(key), 
        (const UInt8 *)cString, 
        strlen(cString), 
        kQTMetaDataTypeUTF8, 
        &outItem); 

我發現下面的鏈接,指出了信息和說明性質的,我應該使用kQTMetaDataStorageFormatQuicktime,但是這似乎並沒有任何區別。在將元數據導入iTunes視頻時,是否有其他人獲得了填充說明列的任何成功?

http://lists.apple.com/archives/quicktime-api/2006/May/msg00115.html

回答

0

終於在這篇文章的幫助下找到了它,並對我的標記媒體的內容進行了深入調試。

Retrieving the key name on AVMetadataItem for an AVAsset in iOS

我設置的數據格式kQTMetaDataStorageFormatiTunes和密鑰格式kQTMetaDataKeyFormatiTunesShortForm。然後我使用的標籤是編碼的id3標籤,就像上面的帖子中一樣。如果您的目標是在iTunes中查看數據,則通用密鑰(kQTMetaDataCommonKeyArtist,kQTMetaDataCommonKeyComment)通常不起作用。看起來他們中的一些人仍然在工作,但總的來說,他們沒有正確地將其映射到他們的id3對應方。

1

我結束了使用AtomicParsley http://atomicparsley.sourceforge.net/沒有這些優點還在於它支持MP4和M4V文件,而不只是MOV文件,這也是我的東西所需要的利益的任何問題。這樣的描述顯示很好。它比QTMetaData API更容易使用。

編輯:呃..剛發現這個應用程序不適用於mov文件。這將適用於mp4和m4v文件,但我想原來的問題仍然存在,因爲我想支持mov文件。