【问题标题】:How to get video length / duration programatically in C# (Universal windows apps)?如何在 C#(通用 Windows 应用程序)中以编程方式获取视频长度/持续时间?
【发布时间】:2015-11-18 23:11:24
【问题描述】:

我已经对此进行了一段时间的搜索,大多数答案似乎都建议使用我尝试过的 directshow 库,但它没有用。我的程序目前正在使用 FileOpenPicker 选择视频文件,然后检查它的长度并将其上传到云端,如果它低于某个长度。请记住,这需要适用于通用 Windows 应用程序。

【问题讨论】:

  • 您可能想告诉我们您支持的文件格式。例如,获取 DVD 的长度与获取 AVI 文件的长度不同。
  • 我想我想支持尽可能多的格式,但现在我只使用 MP4 文件

标签: c# video win-universal-app duration


【解决方案1】:

您可以通过 DirectShow.NET 包装库使用 DirectShow API MediaDet 对象。有关代码示例,请参见 Getting length of video,get_StreamLength 以秒为单位获取持续时间。这假设 Windows 安装了 MPEG-4 解复用器(需要 Windows 7 之前的第三方组件,我相信这同样适用于另一个 answer by cezor,尽管可以免费重新分发组件)。您可以使用 DirectShow API MediaDet 对象,通过 DirectShow.NET 包装库。有关代码示例,请参阅 Getting length of video,get_StreamLength 以秒为单位获取持续时间。这假设 Windows 已安装 MPEG-4 解复用器(需要 Windows 7 之前的第三方组件,我相信这同样适用于另一个 answer by cezor,尽管可以免费重新分发组件)。

【讨论】:

  • 在发布此问题之前,我确实尝试了您答案的第一个链接中提供的方法,但没有奏效。它抛出了一个异常,并给了我一个“类未注册”错误。这就是为什么我希望找到一个适用于 Windows 通用应用程序开发的解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 2018-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-21
相关资源
最近更新 更多