2011-09-05 48 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