Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Lê o próximo exemplo da fonte de mídia.
Sintaxe
HRESULT ReadSample(
[in] DWORD dwStreamIndex,
[in] DWORD dwControlFlags,
[out] DWORD *pdwActualStreamIndex,
[out] DWORD *pdwStreamFlags,
[out] LONGLONG *pllTimestamp,
[out] IMFSample **ppSample
);
Parâmetros
[in] dwStreamIndex
O fluxo do qual extrair dados. O valor pode ser qualquer um dos seguintes.
[in] dwControlFlags
Um OR bit a bit de zero ou mais sinalizadores da enumeração MF_SOURCE_READER_CONTROL_FLAG .
[out] pdwActualStreamIndex
Recebe o índice baseado em zero do fluxo.
[out] pdwStreamFlags
Recebe um OR bit a bit de zero ou mais sinalizadores da enumeração MF_SOURCE_READER_FLAG .
[out] pllTimestamp
Recebe o carimbo de data/hora da amostra ou a hora do evento de fluxo indicado em pdwStreamFlags. O tempo é dado em unidades de 100 nanossegundos.
[out] ppSample
Recebe um ponteiro para a interface IMFSample ou o valor NULL (consulte Comentários). Se esse parâmetro receber um ponteiro não NULL , o chamador deverá liberar a interface.
Valor de retorno
O método retorna um HRESULT. Os valores possíveis incluem, mas não se limitam a, aqueles na tabela a seguir.
| Código de retorno | Description |
|---|---|
|
O método foi bem-sucedido. |
|
Solicitação inválida. |
|
O parâmetro dwStreamIndex é inválido. |
|
Uma operação de liberação está pendente. Consulte IMFSourceReader::Flush. |
|
Argumento inválido. Consulte os comentários. |
Observações
Se o fluxo solicitado não estiver selecionado, o código de retorno será MF_E_INVALIDREQUEST. Consulte IMFSourceReader::SetStreamSelection.
Esse método pode ser concluído de forma síncrona ou assíncrona. Se você fornecer um ponteiro de retorno de chamada ao criar o leitor de origem, o método será assíncrono. Caso contrário, o método será síncrono. Para obter mais informações sobre como definir o ponteiro de retorno de chamada, consulte MF_SOURCE_READER_ASYNC_CALLBACK.
Modo assíncrono
No modo assíncrono:- Todos os
[out]parâmetros devem ser NULL. Caso contrário, o método retornará E_INVALIDARG. - O método retorna imediatamente.
- Quando a operação for concluída, o método IMFSourceReaderCallback::OnReadSample do aplicativo será chamado.
- Se ocorrer um erro, o método poderá falhar de forma síncrona ou assíncrona. Verifique o valor retornado de ReadSample e verifique também o parâmetro hrStatus de IMFSourceReaderCallback::OnReadSample.
Modo síncrono
No modo síncrono:- Os parâmetros pdwStreamFlags e ppSample não podem ser NULL. Caso contrário, o método retornará E_POINTER.
- Os parâmetros pdwActualStreamIndex e pllTimestamp podem ser NULL.
- O método bloqueia até que o próximo exemplo esteja disponível.
Esse método pode retornar sinalizadores no parâmetro pdwStreamFlags sem retornar um exemplo de mídia em ppSample. Portanto, o parâmetro ppSample pode receber um ponteiro NULL mesmo quando o método for bem-sucedido. Por exemplo, quando o leitor de origem atinge o final do fluxo, ele retorna o sinalizador MF_SOURCE_READERF_ENDOFSTREAM em pdwStreamFlags e define ppSample como NULL.
Se houver uma lacuna no fluxo, pdwStreamFlags receberá o sinalizador MF_SOURCE_READERF_STREAMTICK, ppSample será NULL e pllTimestamp indicará a hora em que a lacuna ocorreu.
Essa interface estará disponível no Windows Vista se o Suplemento de Atualização de Plataforma para Windows Vista estiver instalado.
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo suportado | Suplemento windows 7, Windows Vista e Platform Update para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
| Servidor mínimo compatível | Windows Server 2008 R2 [aplicativos da área de trabalho | Aplicativos UWP] |
| da Plataforma de Destino | Windows |
| Header | mfreadwrite.h |