Share via


Método IMFPMediaPlayer::SetPosition (mfplay.h)

Importante Preterido. Essa API pode ser removida de versões futuras do Windows. Os aplicativos devem usar a Sessão de Mídia para reprodução.
 

Define a posição de reprodução.

Sintaxe

HRESULT SetPosition(
  [in] REFGUID           guidPositionType,
  [in] const PROPVARIANT *pvPositionValue
);

Parâmetros

[in] guidPositionType

Unidade de tempo para a posição de reprodução. O valor a seguir é definido.

Valor Significado
MFP_POSITIONTYPE_100NS
Unidades de 100 nanossegundos.

O valor de pvPositionValue deve ser um LARGE_INTEGER.

  • Tipo de variante (vt): VT_I8
  • Membro Variant: hVal

[in] pvPositionValue

Nova posição de reprodução. O significado e o tipo de dados desse parâmetro são indicados pelo parâmetro guidPositionType .

Valor retornado

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
S_OK
O método foi bem-sucedido.
E_INVALIDARG
Argumento inválido.
HRESULT_FROM_WIN32( ERROR_SEEK )
O valor de pvPositionValue não é válido.
MF_E_INVALIDREQUEST
Nenhum item de mídia foi enfileirado.
MF_E_SHUTDOWN
O método Shutdown do objeto foi chamado.

Comentários

Se você chamar esse método enquanto a reprodução for interrompida, a nova posição entrará em vigor após a retomada da reprodução.

Esse método é concluído de forma assíncrona. Quando a operação for concluída, o método de retorno de chamada IMFPMediaPlayerCallback::OnMediaPlayerEvent do aplicativo será invocado. O tipo de evento é MFP_EVENT_TYPE_POSITION_SET.

Se a reprodução tiver sido iniciada antes de SetPosition ser chamada, a reprodução será retomada na nova posição. Se a reprodução tiver sido pausada, o vídeo será atualizado para exibir o quadro atual na nova posição.

Se você fizer duas chamadas consecutivas para SetPosition com guidPositionType igual a MFP_POSITIONTYPE_100NS e a segunda chamada for feita antes da primeira chamada ser concluída, a segunda chamada substituirá a primeira. O código status para a chamada substituída é definido como S_FALSE nos dados de evento para essa chamada. Esse comportamento impede a latência excessiva de chamadas repetidas para SetPosition, pois cada chamada pode forçar a fonte de mídia a executar uma operação de busca relativamente longa.

Requisitos

   
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

IMFPMediaPlayer

Usando mfplay para reprodução de áudio/vídeo