如何查找媒体文件的持续时间
若要查找媒体文件的持续时间,请执行以下步骤:
- 使用 源解析程序 创建可以分析媒体文件的媒体源。
- 在媒体源上调用 IMFMediaSource::CreatePresentationDescriptor 。 此方法返回描述媒体文件内容的演示文稿描述符。
- 通过调用 IMFAttributes::GetUINT64 方法查询 MF_PD_DURATION 属性的表示描述符。 属性的值(如果存在)是文件持续时间(以 100 纳秒为单位)。
HRESULT GetSourceDuration(IMFMediaSource *pSource, MFTIME *pDuration)
{
*pDuration = 0;
IMFPresentationDescriptor *pPD = NULL;
HRESULT hr = pSource->CreatePresentationDescriptor(&pPD);
if (SUCCEEDED(hr))
{
hr = pPD->GetUINT64(MF_PD_DURATION, (UINT64*)pDuration);
pPD->Release();
}
return hr;
}
相关主题