2011-09-05 92 views
2

如何獲取QT電影的時間碼開始和持續時間?我發現我必須使用QTKIt,也許QTStringFromSMPTETime,但我無法在網上找到任何示例。快速時間的SMPTE TimeCode

回答

0

這裏使用QTKit和QuickTime API的一個示例:

QTTrack * tcTrack = [[self.movie tracksOfMediaType:QTMediaTypeTimeCode] objectAtIndex:0]; 
if (tcTrack != nil) { 
    QTMedia * media = [tcTrack media]; 
    if (media != nil) { 
     NSLog(@"sample : %@", [media attributeForKey:QTMediaSampleCountAttribute]); 
     Media qtMedia = [media quickTimeMedia]; 
     MediaHandler mh = GetMediaHandler(qtMedia); 
     long frameNum; 
     TimeCodeDef tcDef; 
     TimeCodeRecord tcData; 
     UserData srcRefH; 
     TCGetTimeCodeAtTime(mh, 0, &frameNum, &tcDef, &tcData, &srcRefH); 
     // frameNum holds the frame number since 00:00:00:00 
     // tcData holds the HH:MM:SS:FF data 
    } 
} 
+0

任何原因,媒體,MediaHandler,TimeCodeDef,和TimeCodeRecord都產生未聲明的標識符錯誤?即使包含了正確的框架。有這些遺產? – mxisaac

+0

好吧,只是想與人分享。顯然,Quicktime API不能以64位模式運行,所以這個示例代碼必須以32位運行。希望蘋果很快就會更新。 – mxisaac

+0

如果任何人有幸能在64位環境下工作,我會非常感激。 – mxisaac