Функция MFCreateSequencerSegmentOffset (mfidl.h)
Создает PROPVARIANT , который можно использовать для поиска в исходной презентации секвенсора.
Синтаксис
HRESULT MFCreateSequencerSegmentOffset(
[in] MFSequencerElementId dwId,
[in] MFTIME hnsOffset,
[out] PROPVARIANT *pvarSegmentOffset
);
Параметры
[in] dwId
Идентификатор элемента Sequencer. Это значение указывает сегмент, в котором начинается воспроизведение. Идентификатор элемента возвращается в методе IMFSequencerSource::AppendTopology .
[in] hnsOffset
Начальная позиция в сегменте в 100-наносекундных единицах.
[out] pvarSegmentOffset
Указатель на PROPVARIANT. Метод заполняет PROPVARIANT сведениями, необходимыми для выполнения операции поиска. Вызывающий объект должен освободить PROPVARIANT , вызвав PropVariantClear.
Возвращаемое значение
Если эта функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Объект PROPVARIANT, возвращенный в pvarSegmentOffset, можно использовать для параметра pvarStartPosition в методе IMFMediaSession::Start. Используйте guid в формате времени MF_TIME_FORMAT_SEGMENT_OFFSET.
Примеры
// Skips to the specified segment in the sequencer source
HRESULT CPlaylist::SkipTo(DWORD index)
{
if (index >= m_count)
{
return E_INVALIDARG;
}
MFSequencerElementId ID = m_segments[index].SegmentID;
PROPVARIANT var;
HRESULT hr = MFCreateSequencerSegmentOffset(ID, NULL, &var);
if (SUCCEEDED(hr))
{
hr = m_pSession->Start(&MF_TIME_FORMAT_SEGMENT_OFFSET, &var);
PropVariantClear(&var);
}
return hr;
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | mfidl.h |
Библиотека | Mf.lib |
DLL | Mf.dll |