惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
Y
Y Combinator Blog
M
MIT News - Artificial intelligence
The Cloudflare Blog
WordPress大学
WordPress大学
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 司徒正美
小众软件
小众软件
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
C
Check Point Blog
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
V
V2EX
F
Fortinet All Blogs
B
Blog
大猫的无限游戏
大猫的无限游戏
N
Netflix TechBlog - Medium
B
Blog RSS Feed
A
About on SuperTechFans
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

博客园 - 泡泡

设置文件属性 VC - 泡泡 - 博客园 程序小注意 - 泡泡 - 博客园 有关进程创建,与子进程的路径指定 dll 有关CComboBox - 泡泡 - 博客园 有关线程 ADO 存储过程 - 泡泡 - 博客园 VC执行存储过程 - 泡泡 - 博客园 读写文件操作 - 泡泡 - 博客园 Access数据库SQL操作 ComboBox控件-转 CTime 常用字符转换 字符串分解 音频 Inno SetUp 控件LIST 有关音频编码 窗口透明、半透明
Windows Media
泡泡 · 2006-05-15 · via 博客园 - 泡泡

一、播放时间的获取
OnSample( DWORD dwOutputNum,  QWORD cnsSampleTime, QWORD cnsSampleDuration,
                            DWORD dwFlags, INSSBuffer __RPC_FAR *pSample, void __RPC_FAR *pvContext )

说明:cnsSampleTime 当前已经播放的时间值。long  _lCurPos  = (long)(cnsSampleTime/10000);

QWORD qDuration = 0;
 IWMHeaderInfo * m_pReaderHeaderInfo->GetAttributeByName( &wVal, L"Duration", &wmtType, (LPBYTE)&qDuration, &cbLength );
 _lDuration = (long)(qDuration/10000);//时间。

计算得时间,显示形式为:(时:分:秒),若小时数为0,则显示(分:秒),用两位数表示
Data WMOpt::GetTime(void)
{

 char buff[1000];
 Data dtTime;
 long lMinute,lSecond;
 long lHour=0;
 long lTotalTime = getDuration()/1000;
 long lPlayTime = getCurPos()/1000;

 long lTime = lTotalTime - lPlayTime;//剩余时间。

 lSecond = lTime%60;
 lMinute = lTime/60;
 if(lMinute>60)
 {
  lHour = lMinute/60;
  lMinute = lMinute%60;
  
  if(lHour<10)
   sprintf( buff, "(0%d:",lHour);
  else
   sprintf( buff, "(%d:",lHour);
  dtTime = buff;
 }
 
 else
  dtTime = "(";

 if(lMinute<10)
  sprintf( buff, " 0%d:",lMinute);
 else
  sprintf( buff, " %d:",lMinute);

 dtTime +=buff;

 if(lSecond<10)
  sprintf( buff, " 0%d)",lSecond);
 else
  sprintf( buff, " %d)",lSecond);

 dtTime +=buff;
   
 return dtTime;// Data();
}