Método IAudioClient::GetMixFormat (audioclient.h)
O método GetMixFormat recupera o formato de fluxo que o mecanismo de áudio usa para o processamento interno de fluxos de modo compartilhado.
Sintaxe
HRESULT GetMixFormat(
[out] WAVEFORMATEX **ppDeviceFormat
);
Parâmetros
[out] ppDeviceFormat
Ponteiro para uma variável de ponteiro na qual o método grava o endereço do formato de combinação. Esse parâmetro deve ser um ponteiro não NULL válido para uma variável de ponteiro. O método grava o endereço de uma estrutura WAVEFORMATEX (ou WAVEFORMATEXTENSIBLE) nessa variável. O método aloca o armazenamento para a estrutura. O chamador é responsável por liberar o armazenamento, quando ele não é mais necessário, chamando a função CoTaskMemFree . Se a chamada GetMixFormat falhar, *ppDeviceFormat será NULL. Para obter informações sobre WAVEFORMATEX, WAVEFORMATEXTENSIBLE e CoTaskMemFree, consulte a documentação do SDK do Windows.
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 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 não estão disponíveis para uso. |
|
O serviço de áudio do Windows não está em execução. |
|
O parâmetro ppDeviceFormat é NULL. |
|
Sem memória. |
Comentários
O cliente pode chamar esse método antes de chamar o método IAudioClient::Initialize . Ao criar um fluxo de modo compartilhado para um dispositivo de ponto de extremidade de áudio, o método Initialize sempre aceita o formato de fluxo obtido de uma chamada GetMixFormat no mesmo dispositivo.
O formato de combinação é o formato que o mecanismo de áudio usa internamente para processamento digital de fluxos de modo compartilhado. Esse formato não é necessariamente um formato compatível com o dispositivo de ponto de extremidade de áudio. Portanto, o chamador pode não conseguir criar um fluxo de modo exclusivo com um formato obtido chamando GetMixFormat.
Por exemplo, para facilitar o processamento de áudio digital, o mecanismo de áudio pode usar um formato de combinação que representa exemplos como valores de ponto flutuante. Se o dispositivo der suporte apenas a exemplos de PCM inteiros, o mecanismo converterá os exemplos para ou de valores pcm inteiros na conexão entre o dispositivo e o mecanismo. No entanto, para evitar a resampação, o mecanismo pode usar um formato de combinação com uma taxa de exemplo compatível com o dispositivo.
Para determinar se o método Initialize pode criar um fluxo de modo compartilhado ou de modo exclusivo com um formato específico, chame o método IAudioClient::IsFormatSupported .
Por si só, uma estrutura WAVEFORMATEX não pode especificar o mapeamento de canais para posições de locutor. Além disso, embora WAVEFORMATEX especifique o tamanho do contêiner para cada exemplo de áudio, ele não pode especificar o número de bits de precisão em um exemplo (por exemplo, 20 bits de precisão em um contêiner de 24 bits). No entanto, a estrutura WAVEFORMATEXTENSIBLE pode especificar o mapeamento de canais para alto-falantes e o número de bits de precisão em cada exemplo. Por esse motivo, o método GetMixFormat recupera um descritor de formato que está na forma de uma estrutura WAVEFORMATEXTENSIBLE em vez de uma estrutura WAVEFORMATEX autônoma. Por meio do parâmetro ppDeviceFormat , o método gera um ponteiro para a estrutura WAVEFORMATEX que é inserida no início desta estrutura WAVEFORMATEXTENSIBLE . Para obter mais informações sobre WAVEFORMATEX e WAVEFORMATEXTENSIBLE, consulte a documentação do DDK do Windows.
Para obter mais informações sobre o método GetMixFormat , consulte Formatos de dispositivo. Para obter exemplos de código que chamam GetMixFormat, 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 |