Я изучаю API Windows Core Audio. Используя этот Rendering a Stream пример, я нахожу, что IAudioClient::GetMixFormat возвращает неоднозначное WAVEFORMATEXTENSIBLE который выглядит следующим образом:Интерпретация WAVEFORMATEXTENSIBLE от IAudioClient :: GetMixFormat
Format
wFormatTag = WAVE_FORMAT_EXTENSIBLE (65534)
nChannels = 2
nSamplesPerSec = 48000
nAvgBytesPerSec = 384000
nBlockAlign = 8
wBitsPerSample = 32
cbSize = 22
Samples // this is a union
wValidBitsPerSample = 32
wSamplesPerBlock = 32
wReserved = 32
С Format.cbSize
22, это вся структура; нет SubFormat
GUID, чтобы предоставить дополнительную информацию о образцах. Это кажется странным, потому что тег формата - WAVE_FORMAT_EXTENSIBLE
, который, как я думал, означает, что для определения фактического формата вам нужно использовать GUID Subformat
.
Я вижу, что есть два канала 32-битных выборок. Как определить, являются ли эти образцы целыми числами или значениями с плавающей запятой?
[Код core-audio, по-видимому, предназначен для API Apple. Есть другой тег для Core Audio Windows]
D'oh! Спасибо за разъяснения. –