【发布时间】:2011-07-06 12:37:33
【问题描述】:
我有一个用 C# 编写的客户端应用程序,想要读取 MOV 文件的持续时间。我必须在 Windows 窗体中创建和托管 Quicktime COM 控件,然后在其中加载电影并获取持续时间。在我的情况下这是不可行的,因为客户端应用程序不是 Windows 窗体。
我实际上已经完成的另一种方法是打开 MOV 文件原始文件,检查字节,直到超过剪辑的电影头原子 ('mvhd') 12 个字节,然后获取时间刻度和从那里的持续时间。我不喜欢这种 hack,因为如果 Apple 将来更改文件格式,它可能无法正常工作。
我宁愿避免将 MOV 加载到控件,因为我只对获取剪辑的持续时间感兴趣,而不是其他任何内容。理想情况下,我需要为应用程序提供一个带有 mov 文件路径的字符串,并获得这样的持续时间。有人用非托管代码做过吗?
【问题讨论】:
-
为什么不能在非 Windows 窗体应用程序中使用相同的 COM 对象?或者它只是一个控件?
-
它是一个控件,因此需要一个主机来“活”。
-
鉴于 .mov 的寿命,是否可以肯定地说他们此时更改标头的可能性很小?另外,请注意,必须有大量依赖相同信息的玩家。找到用于定义 .mov 文件布局的文档并从那里进行开发。
标签: c# quicktime duration clip mov