Метод IMFPMediaItem::SetStartStopPosition (mfplay.h)

Важно Устаревшие. Этот API может быть удален из будущих выпусков Windows. Приложения должны использовать сеанс мультимедиа для воспроизведения.
 

Задает время начала и остановки элемента мультимедиа.

Синтаксис

HRESULT SetStartStopPosition(
  [in] const GUID        *pguidStartPositionType,
  [in] const PROPVARIANT *pvStartValue,
  [in] const GUID        *pguidStopPositionType,
  [in] const PROPVARIANT *pvStopValue
);

Параметры

[in] pguidStartPositionType

Единица времени для начальной позиции. См. заметки. Этот параметр может принимать значение NULL.

[in] pvStartValue

Начальная позиция. Значение и тип данных этого параметра указываются параметром pguidStartPositionType . Параметр pvStartValue должен иметь значение NULL , если pguidStartPositionType имеет значение NULL, и в противном случае не может иметь значение NULL .

[in] pguidStopPositionType

Единица времени для позиции остановки. См. заметки. Этот параметр может принимать значение NULL.

[in] pvStopValue

Позиция остановки. Значение и тип данных этого параметра указываются параметром pguidStopPositionType . Параметр pvStopValue должен иметь значение NULL , если pguidStopPositionType имеет значение NULL, и в противном случае не может иметь значение NULL .

Возвращаемое значение

Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.

Код возврата Описание
S_OK
Метод выполнен успешно.
E_INVALIDARG
Недопустимый аргумент.
MF_E_OUT_OF_RANGE
Недопустимое время запуска или остановки. Это может привести к любой из следующих причин:
  • Время меньше нуля.
  • Время больше общей длительности элемента мультимедиа.
  • Время остановки меньше времени начала.

Комментарии

По умолчанию элемент мультимедиа воспроизводится от начала до конца файла. Этот метод корректирует время начала и (или) время остановки:

  • Чтобы задать время начала, передайте значения, отличные от NULL , для pguidStartPositionType и pvStartValue.
  • Чтобы задать время остановки, передайте значения, отличные от NULL , для pguidStopPositionType и pvStopValue.
Параметры pguidStartPositionType и pguidStopPositionType дают используемые единицы времени. В настоящее время единственным поддерживаемым значением является MFP_POSITIONTYPE_100NS.
Значение Описание
MFP_POSITIONTYPE_100NS 100 наносекундных единиц. Параметр time (pvStartValue или pvStopValue) использует следующий тип данных:
  • Тип variant (vt): VT_I8
  • Член Variant: hVal
Чтобы очистить заданное ранее время, используйте пустой PROPVARIANT (VT_EMPTY).
 

Скорректированное время запуска и остановки используется при следующем вызове IMFPMediaPlayer::SetMediaItem с этим элементом мультимедиа. Если элемент мультимедиа уже установлен в проигрывателе, изменение не произойдет, если вы не вызовете SetMediaItem еще раз.

Примеры

HRESULT PlayMediaClip(
    IMFPMediaPlayer *pPlayer,
    PCWSTR pszURL,
    LONGLONG    hnsStart,
    LONGLONG    hnsEnd
    )
{
    IMFPMediaItem *pItem = NULL;
    PROPVARIANT varStart, varEnd;

    ULONGLONG hnsDuration = 0;

    HRESULT hr = pPlayer->CreateMediaItemFromURL(pszURL, TRUE, 0, &pItem);
    if (FAILED(hr))
    {
        goto done;
    }

    hr = GetPlaybackDuration(pItem, &hnsDuration);
    if (FAILED(hr))
    {
        goto done;
    }

    if ((ULONGLONG)hnsEnd > hnsDuration)
    {
        hnsEnd = hnsDuration;
    }

    hr = InitPropVariantFromInt64(hnsStart, &varStart);
    if (FAILED(hr))
    {
        goto done;
    }

    hr = InitPropVariantFromInt64(hnsEnd, &varEnd);
    if (FAILED(hr))
    {
        goto done;
    }

    hr = pItem->SetStartStopPosition(
        &MFP_POSITIONTYPE_100NS,
        &varStart,
        &MFP_POSITIONTYPE_100NS,
        &varEnd
        );
    if (FAILED(hr))
    {
        goto done;
    }

    hr = pPlayer->SetMediaItem(pItem);

done:
    SafeRelease(&pItem);
    return hr;
}

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header mfplay.h

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

Воспроизведение клипа файла

IMFPMediaItem

Использование MFPlay для воспроизведения звука и видео