Функция 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

См. также раздел

MFTIME

Функции Media Foundation

Источник Sequencer

Использование источника Sequencer