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

推荐订阅源

罗磊的独立博客
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
小众软件
小众软件
博客园_首页
G
Google Developers Blog
Apple Machine Learning Research
Apple Machine Learning Research
MyScale Blog
MyScale Blog
Engineering at Meta
Engineering at Meta
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理
B
Blog RSS Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Docker
B
Blog
雷峰网
雷峰网
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
宝玉的分享
宝玉的分享

博客园 - 泡泡

设置文件属性 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();
}