Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Метод GetBufferSize извлекает размер (максимальная емкость) буфера конечной точки.
Синтаксис
HRESULT GetBufferSize(
[out] UINT32 *pNumBufferFrames
);
Параметры
[out] pNumBufferFrames
Указатель на переменную UINT32 , в которую метод записывает количество звуковых кадров, которые буфер может хранить.
Возвращаемое значение
Если метод выполнен успешно, он возвращает S_OK. В случае сбоя возможные коды возврата включаются, но не ограничиваются значениями, приведенными в следующей таблице.
| Код возврата | Description |
|---|---|
|
Аудиопоток не был успешно инициализирован. |
|
Устройство конечной точки звука было отключено, или звуковое оборудование или связанные аппаратные ресурсы были перенастроены, отключены, удалены или недоступны для использования. |
|
Ресурсы потока были недействительны. Эта ошибка может возникать по следующим причинам: — поток приостановлен. — Поток эксклюзивной или разгрузки отключен. — Упаковаемое приложение с монопольным режимом или потоком разгрузки. — Поток "защищенных выходных данных" закрыт. |
|
Звуковая служба Windows не запущена. |
|
Параметр pNumBufferFrames имеет значение NULL. |
Замечания
Для этого метода требуется предварительная инициализация интерфейса IAudioClient . Все вызовы этого метода завершаются ошибкой AUDCLNT_E_NOT_INITIALIZED до тех пор, пока клиент не инициализирует аудиопоток, успешно вызвав метод IAudioClient::Initialize .
Этот метод извлекает длину буфера конечной точки, совместно используемого между клиентским приложением и подсистемой звука. Длина выражается как количество аудиокадров, которые может хранить буфер. Размер звукового кадра в байтах вычисляется как количество каналов в потоке, умноженное на размер выборки на канал. Например, размер кадра составляет четыре байта для потока стерео (2-канал) с 16-разрядными образцами.
Метод IAudioClient::Initialize выделяет буфер. Клиент указывает длину буфера в значении параметра hnsBufferDuration , который он передает методу Initialize . Для клиентов отрисовки длина буфера определяет максимальный объем данных отрисовки, которые приложение может записывать в буфер конечной точки во время одного прохода обработки. Для клиентов записи длина буфера определяет максимальный объем данных записи, считываемых подсистемой звука из буфера конечной точки во время одного прохода обработки. Клиент всегда должен вызывать GetBufferSize после вызова Initialize , чтобы определить фактический размер выделенного буфера, который может отличаться от запрошенного размера.
Клиенты рендеринга могут использовать это значение для вычисления наибольшего размера буфера отрисовки, который можно запросить из IAudioRenderClient::GetBuffer во время каждого прохождения обработки.
Примеры кода, вызывающие метод GetBufferSize , см. в следующих разделах:
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows Vista [классические приложения | Приложения UWP] |
| минимальный поддерживаемый сервер | Windows Server 2008 [классические приложения | Приложения UWP] |
| целевая платформа | Windows |
| Header | audioclient.h |