Método IMFPMediaItem::SetStartStopPosition (mfplay.h)
Define a hora de início e parada para o item de mídia.
Sintaxe
HRESULT SetStartStopPosition(
[in] const GUID *pguidStartPositionType,
[in] const PROPVARIANT *pvStartValue,
[in] const GUID *pguidStopPositionType,
[in] const PROPVARIANT *pvStopValue
);
Parâmetros
[in] pguidStartPositionType
Unidade de tempo para a posição inicial. Consulte Observações. Este parâmetro pode ser NULL.
[in] pvStartValue
Posição inicial. O significado e o tipo de dados desse parâmetro são indicados pelo parâmetro pguidStartPositionType . O parâmetro pvStartValue deverá ser NULL se pguidStartPositionType for NULL e não puder ser NULL caso contrário.
[in] pguidStopPositionType
Unidade de tempo para a posição de parada. Consulte Observações. Este parâmetro pode ser NULL.
[in] pvStopValue
Parar posição. O significado e o tipo de dados desse parâmetro são indicados pelo parâmetro pguidStopPositionType . O parâmetro pvStopValue deverá ser NULL se pguidStopPositionType for NULL e não puder ser NULL caso contrário.
Retornar valor
O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.
Código de retorno | Descrição |
---|---|
|
O método foi bem-sucedido. |
|
Argumento inválido. |
|
Hora de início ou parada inválida. Qualquer um dos itens a seguir pode causar esse erro:
|
Comentários
Por padrão, um item de mídia é reproduzido do início ao fim do arquivo. Esse método ajusta a hora de início e/ou a hora de parada:
- Para definir a hora de início, passe valores não NULL para pguidStartPositionType e pvStartValue.
- Para definir o tempo de parada, passe valores não NULL para pguidStopPositionType e pvStopValue.
Valor | Descrição |
---|---|
MFP_POSITIONTYPE_100NS | Unidades de 100 nanossegundos. O parâmetro time (pvStartValue ou pvStopValue) usa o seguinte tipo de dados:
|
Os horários de início e parada ajustados são usados na próxima vez que IMFPMediaPlayer::SetMediaItem for chamado com este item de mídia. Se o item de mídia já estiver definido no player, a alteração não acontecerá, a menos que você chame SetMediaItem novamente.
Exemplos
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 | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | mfplay.h |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de