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 espaço de buffer adquirido na chamada anterior para o método IAudioRenderClient::GetBuffer .
Sintaxe
HRESULT ReleaseBuffer(
[in] UINT32 NumFramesWritten,
[in] DWORD dwFlags
);
Parâmetros
[in] NumFramesWritten
O número de quadros de áudio gravados pelo cliente no pacote de dados. O valor desse parâmetro deve ser menor ou igual ao tamanho do pacote de dados, conforme especificado no parâmetro NumFramesRequested passado para o método IAudioRenderClient::GetBuffer .
[in] dwFlags
Os sinalizadores de configuração de buffer. O chamador pode definir esse parâmetro como 0 ou para o seguinte valor de enumeração _AUDCLNT_BUFFERFLAGS (um bit de sinalizador):
AUDCLNT_BUFFERFLAGS_SILENT
Se esse bit de sinalizador estiver definido, o mecanismo de áudio tratará o pacote de dados como se ele contivesse silêncio, independentemente dos valores de dados contidos no pacote. Esse sinalizador elimina a necessidade de o cliente gravar explicitamente dados de silêncio no buffer de renderização.
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 valor NumFramesWritten excede o valor NumFramesRequested especificado na chamada anterior de IAudioRenderClient::GetBuffer . |
|
O fluxo é um modo exclusivo e usa buffer controlado por eventos, mas o cliente tentou liberar um pacote que não era do tamanho do buffer. |
|
Essa chamada não foi precedida por uma chamada correspondente para IAudioRenderClient::GetBuffer. |
|
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. |
|
DwFlags de parâmetro não é um valor válido. |
Observações
O cliente deve liberar o mesmo número de quadros solicitado na chamada anterior para o método IAudioRenderClient::GetBuffer . A única exceção a essa regra é que o cliente sempre pode chamar ReleaseBuffer para liberar 0 quadros (a menos que o fluxo seja um modo exclusivo e use buffer controlado por eventos).
Esse comportamento fornece um meio conveniente para o cliente "liberar" um pacote de comprimento 0 solicitado anteriormente. Nesse caso, a chamada para ReleaseBuffer é opcional. Depois de chamar GetBuffer para obter um pacote de comprimento 0, o cliente tem a opção de não chamar ReleaseBuffer antes de chamar GetBuffer novamente.
Além disso, se a chamada getbuffer anterior obteve um pacote de tamanho diferente de zero, chamar ReleaseBuffer com NumFramesRequested definido como 0 terá êxito (a menos que o fluxo seja um modo exclusivo e use buffer controlado por eventos). O significado da chamada é que o cliente não escreveu nenhum dado no pacote antes de liberá-lo. Assim, o método trata a parte do buffer representada pelo pacote como não usada e disponibilizará essa parte do buffer novamente para o cliente na próxima chamada getbuffer .
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 exemplos de código que chamam o método ReleaseBuffer , consulte os seguintes tópicos:
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 |