Compartilhar via


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

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na 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 Captura de Áudio/Vídeo no 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 WaitForNext método aguarda a conclusão da próxima solicitação de leitura pendente.

Sintaxe

HRESULT WaitForNext(
  [in]  DWORD        dwTimeout,
  [out] IMediaSample **ppSample,
  [out] DWORD_PTR    *pdwUser
);

Parâmetros

[in] dwTimeout

Especifica um tempo limite em milissegundos. Usar o valor INFINITE para aguardar indefinidamente

[out] ppSample

Endereço de uma variável que recebe um ponteiro de interface IMediaSample .

[out] pdwUser

Ponteiro para uma variável que recebe o valor do parâmetro dwUser especificado no método IAsyncReader::Request .

Retornar valor

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

Código de retorno Descrição
VFW_E_TIMEOUT
O tempo limite expirou ou o pino está sendo liberado.
VFW_E_WRONG_STATE
O pino está sendo liberado.
E_FAIL
Ocorreu um erro de leitura.
S_OK
Êxito.
S_FALSE
Chegou ao final do arquivo; recuperou menos bytes do que o solicitado.

Comentários

Se o método for bem-sucedido, o parâmetro ppSample conterá um ponteiro para um exemplo de mídia, cujo buffer contém os dados solicitados. Chame o método IMediaSample::GetTime e divida os resultados por 10.000.000 para determinar os bytes de início e parada. Os exemplos podem ser retornados fora de ordem. Libere o exemplo quando terminar de processar os dados.

O método falhará se o pino estiver sendo liberado. No entanto, ele pode retornar uma amostra vazia em ppSample. Se *ppSample não for NULL, libere o exemplo e descarte-o. Para obter mais informações, consulte IAsyncReader::BeginFlush.

Se ocorrer um erro de leitura, o filtro de origem enviará um evento de erro para o Gerenciador de Grafo de Filtro; o chamador não precisa sinalizar um erro.

Requisitos

   
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