Cómo reproducir un clip de archivo
[MFPlay está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. En versiones posteriores podría modificarse o no estar disponible. ]
En este tema se describe cómo reproducir un segmento de un archivo multimedia en MFPlay estableciendo las horas de inicio y detención para la reproducción.
Para reproducir un clip de archivo
- Llame a IMFPMediaPlayer::CreateMediaItemFromURL o IMFPMediaPlayer::CreateMediaItemFromObject para crear un elemento multimedia para el archivo.
- Opcionalmente, obtenga la duración total del archivo, como se describe en Cómo obtener la duración de la reproducción.
- Llame a IMFPMediaItem::SetStartStopPosition para establecer las horas de inicio y detención. El tiempo de detención no debe superar la duración del archivo.
- Llame a IMFPMediaPlayer::SetMediaItem para iniciar la reproducción.
En el ejemplo siguiente se usa la versión de bloqueo de CreateMediaItemFromURL. Si se usa la versión sin bloqueo, el código que aparece después de CreateMediaItemFromURL debe colocarse en el controlador para el evento MFP_EVENT_TYPE_MEDIAITEM_CREATED . Para obtener más información sobre los eventos en MFPlay, consulte Recepción de eventos del reproductor.
Para obtener la duración del archivo, en este ejemplo se llama a la GetPlaybackDuration
función que se muestra en el tema Cómo obtener la duración de la reproducción.
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
MFPlay requiere Windows 7.
Temas relacionados
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