获取 Windows 视频时长的正确方式——Windows Shell API 深度解析

news/2025/2/13 2:25:43/

在 Qt 开发中,有时需要获取视频文件的时长,最直接的方法是在 Windows 上使用 Windows Shell API。然而,这涉及到 IShellItemIPropertyStore 等 COM 组件,并需要正确处理 PKEY_Media_Duration。本篇文章将详细解析 Windows Shell API 获取视频时长的正确实现方式,并解决常见问题。

实现步骤

  1. 初始化 COM 组件
  2. 转换文件路径
  3. 创建 IShellItem
  4. 绑定 IPropertyStore
  5. 获取 PKEY_Media_Duration
  6. 转换 100 纳秒单位
  7. 释放资源

使用 Windows Shell API 获取视频时长是一种 高效可靠 的方式,但需要正确初始化 COM、正确绑定


http://www.ppmy.cn/news/1571584.html

相关文章

C++ 顺序表

顺序表的操作有以下: 1 顺序表的元素插入 给定一个索引和元素,这个位置往后的元素位置都要往后移动一次,元素插入的步骤有以下几步 (1)判断插入的位置是否合法,如果不合法则抛出异常 (2&…

关于工厂模式和单例模式

工厂模式 工厂模式就是将对象的创建过程封装在一个工厂类中,将创建对象的任务交给工厂完成。外部只能通过工厂类来指定创建或查找一个什么类型的对象,但不能直接创建对象。这样的好处在于实现了创建逻辑和业务逻辑的解耦。让代码变得更好看。 工厂模式又…

ARM Cortex-M3/M4 权威指南 笔记【一】技术综述

一、Cortex-M3/M4 处理器的一般信息 1.1 处理器类型 ARM Cortex-M 为 32 位 RISC(精简指令集)处理器,其具有: 32位寄存器32位内部数据通路32位总线接口 除了 32 位数据,Cortex-M 处理器(以及其他任何 A…

【含文档+PPT+源码】基于微信小程序的校园志愿者管理系统的设计与实现

项目介绍 本课程演示的是一款 基于微信小程序的校园志愿者管理系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本…

自定义Spring Cloud Gateway过滤器:记录慢请求

在构建微服务架构时,API网关是一个关键组件,它负责路由、负载均衡、安全验证等多种功能。Spring Cloud Gateway提供了强大的扩展能力,允许开发者通过自定义过滤器来增强其功能。本文将详细介绍如何实现一个自定义过滤器,用于记录响…

【分布式架构理论3】分布式调用(1):负载均衡

文章目录 零、三种不同的负载均衡一、常见行业负载均衡方案1. 电商与互联网服务2. 金融与支付系统3. 云计算与分布式存储 二、负载均衡策略概述1. 无状态负载均衡(强调公平性)2. 有状态的负载均衡(强调正确性) 三、 总结 零、三种…

《从入门到精通:蓝桥杯编程大赛知识点全攻略》(九)-连号区间数、递增三元组

前言 在本篇博客中,我们将通过模拟方法解决两道经典的算法题:连号区间数和递增三元组。通过这两道题,我们将展示如何通过模拟操作和细致的算法设计来解决实际问题,帮助提升算法思维和编码能力。 连号区间数 小明这些天一直在思考…

Java面试题-Redis缓存

文章目录 1.**Redis 支持哪几种数据类型?**2.**Redis的持久化机制是怎样的?**1.RDB2.AOF3.对比 3.双写一致性1.问题2.双写不一致的原因3.延迟双删(有脏数据)4.读写锁(强一致)5.异步通知(最终一致…