Método IAudioCaptureClient::ReleaseBuffer (audioclient.h)
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.
Retornar valor
Se o método for bem-sucedido, 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 | Descrição |
---|---|
|
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. |
|
O serviço de áudio do Windows não está em execução. |
Comentários
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 permanecerem válidos até que o cliente chame ReleaseBuffer para liberar o pacote.
Entre cada chamada getbuffer e sua chamada releasebuffer correspondente, o cliente deve ler o pacote de dados inteiro ou nenhum dele. 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 releasebuffer correspondente ocorram dentro do mesmo período de processamento de buffer. Clientes que atrasam 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 Stream.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | audioclient.h |