Método IAudioClient::GetBufferSize (audioclient.h)
O método GetBufferSize recupera o tamanho (capacidade máxima) do buffer do ponto de extremidade.
Sintaxe
HRESULT GetBufferSize(
[out] UINT32 *pNumBufferFrames
);
Parâmetros
[out] pNumBufferFrames
Ponteiro para uma variável UINT32 na qual o método grava o número de quadros de áudio que o buffer pode conter.
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 fluxo de áudio não foi inicializado com êxito. |
|
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. |
|
O parâmetro pNumBufferFrames é NULL. |
Comentários
Esse método requer a inicialização anterior da interface IAudioClient . Todas as chamadas para esse método falharão com o erro AUDCLNT_E_NOT_INITIALIZED até que o cliente inicialize o fluxo de áudio chamando com êxito o método IAudioClient::Initialize .
Esse método recupera o comprimento do buffer de ponto de extremidade compartilhado entre o aplicativo cliente e o mecanismo de áudio. O comprimento é expresso como o número de quadros de áudio que o buffer pode conter. O tamanho em bytes de um quadro de áudio é calculado como o número de canais no fluxo multiplicado pelo tamanho da amostra por canal. Por exemplo, o tamanho do quadro é de quatro bytes para um fluxo estéreo (de dois canais) com amostras de 16 bits.
O método IAudioClient::Initialize aloca o buffer. O cliente especifica o comprimento do buffer no valor do parâmetro hnsBufferDuration que ele passa para o método Initialize . Para clientes de renderização, o comprimento do buffer determina a quantidade máxima de dados de renderização que o aplicativo pode gravar no buffer de ponto de extremidade durante uma única passagem de processamento. Para clientes de captura, o comprimento do buffer determina a quantidade máxima de dados de captura que o mecanismo de áudio pode ler do buffer do ponto de extremidade durante uma única passagem de processamento. O cliente sempre deve chamar GetBufferSize depois de chamar Initialize para determinar o tamanho real do buffer alocado, que pode ser diferente do tamanho solicitado.
Os clientes de renderização podem usar esse valor para calcular o maior tamanho de buffer de renderização que pode ser solicitado de IAudioRenderClient::GetBuffer durante cada passagem de processamento.
Para obter exemplos de código que chamam o método GetBufferSize , consulte os seguintes tópicos:
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 |