在 Qt 开发中,有时需要获取视频文件的时长,最直接的方法是在 Windows 上使用 Windows Shell API。然而,这涉及到 IShellItem
、IPropertyStore
等 COM 组件,并需要正确处理 PKEY_Media_Duration
。本篇文章将详细解析 Windows Shell API 获取视频时长的正确实现方式,并解决常见问题。
实现步骤
- 初始化 COM 组件
- 转换文件路径
- 创建
IShellItem
- 绑定
IPropertyStore
- 获取
PKEY_Media_Duration
- 转换 100 纳秒单位
- 释放资源
使用 Windows Shell API 获取视频时长是一种 高效 且 可靠 的方式,但需要正确初始化 COM、正确绑定