Método IMFPMediaItem::SetStartStopPosition (mfplay.h)

Importante Obsoleto. Esta API se puede quitar de futuras versiones de Windows. Las aplicaciones deben usar la sesión multimedia para la reproducción.
 

Establece la hora de inicio y detención del elemento multimedia.

Sintaxis

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

Parámetros

[in] pguidStartPositionType

Unidad de tiempo para la posición de inicio. Vea la sección Comentarios. Este parámetro puede ser NULL.

[in] pvStartValue

Posición inicial. El significado y el tipo de datos de este parámetro se indican mediante el parámetro pguidStartPositionType . El parámetro pvStartValue debe ser NULL si pguidStartPositionType es NULL y no puede ser NULL en caso contrario.

[in] pguidStopPositionType

Unidad de tiempo para la posición de detención. Vea la sección Comentarios. Este parámetro puede ser NULL.

[in] pvStopValue

Posición de detención. El significado y el tipo de datos de este parámetro se indican mediante el parámetro pguidStopPositionType . El parámetro pvStopValue debe ser NULL si pguidStopPositionType es NULL y no puede ser NULL en caso contrario.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
E_INVALIDARG
Argumento no válido.
MF_E_OUT_OF_RANGE
Hora de inicio o detención no válida. Cualquiera de las siguientes causas puede provocar este error:
  • Tiempo menor que cero.
  • Tiempo mayor que la duración total del elemento multimedia.
  • Tiempo de detención menor que la hora de inicio.

Comentarios

De forma predeterminada, un elemento multimedia se reproduce desde el principio hasta el final del archivo. Este método ajusta la hora de inicio o la hora de detención:

  • Para establecer la hora de inicio, pase valores que no sean NULL para pguidStartPositionType y pvStartValue.
  • Para establecer la hora de detención, pase valores que no sean NULL para pguidStopPositionType y pvStopValue.
Los parámetros pguidStartPositionType y pguidStopPositionType proporcionan las unidades de tiempo que se usan. Actualmente, el único valor admitido es MFP_POSITIONTYPE_100NS.
Valor Descripción
MFP_POSITIONTYPE_100NS Unidades de 100 nanosegundos. El parámetro time (pvStartValue o pvStopValue) usa el siguiente tipo de datos:
  • Tipo de variante (vt): VT_I8
  • Miembro variant: hVal
Para borrar una hora establecida previamente, use un PROPVARIANT vacío (VT_EMPTY).
 

Las horas de inicio y detención ajustadas se usan la próxima vez que se llama a IMFPMediaPlayer::SetMediaItem con este elemento multimedia. Si el elemento multimedia ya está establecido en el reproductor, el cambio no se produce a menos que llame a SetMediaItem de nuevo.

Ejemplos

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;
}

Requisitos

   
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado mfplay.h

Consulte también

Cómo reproducir un clip de archivo

IMFPMediaItem

Uso de MFPlay para la reproducción de audio y vídeo