Compartilhar via


Método IAsyncReader::SyncReadAligned (strmif.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O SyncReadAligned método executa uma leitura síncrona. O método é bloqueado até que a solicitação seja concluída. As posições do arquivo e o endereço do buffer devem ser alinhados; marcar as propriedades do alocador para o alinhamento necessário.

Sintaxe

HRESULT SyncReadAligned(
  IMediaSample *pSample
);

Parâmetros

pSample

Ponteiro para a interface IMediaSample de um exemplo de mídia fornecido pelo chamador.

Retornar valor

Retorna um valor HRESULT . Os possíveis valores incluem os seguintes.

Código de retorno Descrição
VFW_E_BADALIGN
Alinhamento inválido.
S_FALSE
Recuperamos menos bytes do que o solicitado. (Provavelmente, o final do arquivo foi atingido.)
S_OK
Êxito.

Comentários

Antes de chamar esse método, recupere um exemplo de mídia do alocador do pino. Carimbo de data/hora do exemplo com os deslocamentos de bytes que você está solicitando, primeiro e último inclusivo, multiplicado por 10.000.000. Os deslocamentos de bytes são relativos ao início do fluxo.

As posições de início e parada devem corresponder ao alinhamento que foi decidido quando os pinos se conectaram. Caso contrário, o método retornará VFW_E_BADALIGN. Se o alinhamento acordado for mais grosseiro do que o alinhamento real do fluxo, a posição de parada poderá exceder a duração real. Nesse caso, o método arredonda a posição de parada para baixo até o alinhamento real.

Esse método executa uma leitura sem buffer, portanto, pode ser mais rápido do que o método IAsyncReader::SyncRead .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho strmif.h (inclua Dshow.h)
Biblioteca Strmiids.lib

Confira também

Códigos de erro e êxito

IAsyncReader Interface