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.
O método ReleaseBuffer libera o buffer.
Sintaxe
HRESULT ReleaseBuffer(
[in] UINT32 NumFramesRead
);
Parâmetros
[in] NumFramesRead
O número de quadros de áudio que o cliente leu do buffer de captura. Esse parâmetro deve ser igual ao número de quadros no pacote de dados adquirido anteriormente ou 0.
Valor de retorno
Se o método for bem-sucedido, ele retornará S_OK. Se falhar, os códigos de retorno possíveis incluem, mas não se limitam a, os valores mostrados na tabela a seguir.
| Código de retorno | Description |
|---|---|
|
O parâmetro NumFramesRead é definido como um valor diferente do tamanho do pacote de dados ou 0. |
|
Essa chamada não foi precedida por uma chamada IAudioCaptureClient::GetBuffer correspondente. |
|
O dispositivo de ponto de extremidade de áudio foi desconectado ou o hardware de áudio ou os recursos de hardware associados foram reconfigurados, desabilitados, removidos ou indisponíveis para uso. |
|
Os recursos do fluxo foram invalidados. Esse erro pode ser gerado pelos seguintes motivos: - O fluxo está suspenso. - Um fluxo exclusivo ou de descarregamento é desconectado. - Um aplicativo empacotado que tem um modo exclusivo ou fluxo de descarregamento é quiesced. - Um fluxo de "saída protegida" é fechado. |
|
O serviço de áudio do Windows não está em execução. |
Observações
O cliente deve chamar esse método quando terminar de ler um pacote de dados obtido anteriormente chamando o método IAudioCaptureClient::GetBuffer .
Os dados no pacote que o cliente obteve de uma chamada GetBuffer têm a garantia de permanecer válidos até que o cliente chame ReleaseBuffer para liberar o pacote.
Entre cada chamada getbuffer e sua chamada do ReleaseBuffer correspondente, o cliente deve ler o pacote de dados inteiro ou nenhum deles. Se o cliente ler todo o pacote após a chamada getbuffer , ele deverá chamar ReleaseBuffer com NumFramesRead definido como o número total de quadros no pacote de dados. Nesse caso, a próxima chamada para GetBuffer produzirá um novo pacote de dados. Se o cliente não ler nenhum dos dados do pacote após a chamada para GetBuffer, ele deverá chamar ReleaseBuffer com NumFramesRead definido como 0. Nesse caso, a próxima chamada getbuffer produzirá o mesmo pacote de dados que na chamada anterior do GetBuffer .
Se o cliente chamar ReleaseBuffer com NumFramesRead definido como qualquer valor diferente do tamanho do pacote ou 0, a chamada falhará e retornará o código de erro AUDCLNT_E_INVALID_SIZE.
Os clientes devem evitar atrasos excessivos entre a chamada getbuffer que adquire um buffer e a chamada ReleaseBuffer que libera o buffer. A implementação do mecanismo de áudio pressupõe que a chamada getbuffer e a chamada do ReleaseBuffer correspondente ocorram no mesmo período de processamento de buffer. Os clientes que atrasarem a liberação de um buffer por mais de um período correm o risco de perder dados de exemplo.
Para obter um exemplo de código que chama o método ReleaseBuffer , consulte Capturando um Fluxo.
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo suportado | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
| Servidor mínimo compatível | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
| da Plataforma de Destino | Windows |
| Header | audioclient.h |