メディア ファイルの期間を検索する方法
メディア ファイルの期間を確認するには、次の手順を実行します。
- ソース リゾルバーを使用して、メディア ファイルを解析できるメディア ソースを作成します。
- メディア ソースで 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;
}
関連トピック