Поделиться через


Метод IAudioClock::GetFrequency (audioclient.h)

Метод GetFrequency получает частоту устройства.

Синтаксис

HRESULT GetFrequency(
  [out] UINT64 *pu64Frequency
);

Параметры

[out] pu64Frequency

Указатель на переменную UINT64 , в которую метод записывает частоту устройства. Дополнительные сведения см. в подразделе "Примечания".

Возвращаемое значение

Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возможные коды возврата включают, помимо прочего, значения, показанные в следующей таблице.

Код возврата Описание
E_POINTER
Параметр pu64Frequency имеет значение NULL.
AUDCLNT_E_DEVICE_INVALIDATED
Устройство конечной точки аудио отключено, звуковое оборудование или связанные аппаратные ресурсы были перенастроены, отключены, удалены или иным образом недоступны для использования.
AUDCLNT_E_SERVICE_NOT_RUNNING
Служба звука Windows не запущена.

Комментарии

Частота устройства — это частота, генерируемая аппаратными часами на звуковом устройстве. Этот метод сообщает частоту устройства в единицах, совместимых с данными о расположении устройства, которое сообщает метод IAudioClock::GetPosition . Например, если для определенного потока метод GetPosition выражает позицию p в виде смещения байтов, метод GetFrequency выражает частоту f в байтах в секунду. Для любого потока смещение в секундах от начала потока всегда можно надежно вычислить как p/f независимо от единиц, в которых выражены p и f .

В Windows Vista частота устройства, сообщаемая последовательными вызовами GetFrequency , никогда не меняется в течение времени существования потока.

Если часы, созданные звуковым устройством, работают с номинальной постоянной частотой, частота может по-прежнему немного меняться с течением времени из-за смещения или дрожания относительно эталонных часов. Эталонными часами могут быть настенные часы или системные часы, используемые функцией QueryPerformanceCounter . Метод GetFrequency игнорирует такие варианты и просто сообщает о постоянной частоте. Однако позиция, сообщаемая методом IAudioClient::GetPosition , учитывает все такие варианты, чтобы при каждом вызове было указано точное значение позиции. Дополнительные сведения о QueryPerformanceCounter см. в документации по Windows SDK.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header audioclient.h

См. также раздел

Интерфейс IAudioClock

IAudioClock::GetPosition