Método IMFPMediaItem::SetStartStopPosition (mfplay.h)
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 |
---|---|
|
El método se ha llevado a cabo de forma correcta. |
|
Argumento no válido. |
|
Hora de inicio o detención no válida. Cualquiera de las siguientes causas puede provocar este error:
|
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.
Valor | Descripción |
---|---|
MFP_POSITIONTYPE_100NS | Unidades de 100 nanosegundos. El parámetro time (pvStartValue o pvStopValue) usa el siguiente tipo de datos:
|
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
Requisito | Value |
---|---|
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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de