获取音视频文件播放时长

long get_au_len(std::string fname)
{
 IGraphBuilder *pGB = NULL;
 IMediaPosition *pMP = NULL;
 REFTIME m_Total = 0;

 CoInitialize(NULL);
 CString wFile = convert_string_ex(fname);
 HRESULT rets = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
  IID_IGraphBuilder, (void **)&pGB);

 if(FAILED(rets))
  return 0x00;

 if(FAILED(pGB->RenderFile(wFile, NULL)))
  return 0x00;

 if(FAILED(pGB->QueryInterface(IID_IMediaPosition, (void **)&pMP)))
 {
  pGB->Release();
  CoUninitialize();
  return 0x00;
 }

 pMP->get_Duration(&m_Total);
 pMP->Release();
 pGB->Release();

 return (long)m_Total;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值