Метод IAudioClient::SetEventHandle (audioclient.h)
Метод SetEventHandle задает дескриптор события, который система сигнализирует, когда звуковой буфер готов к обработке клиентом.
Синтаксис
HRESULT SetEventHandle(
[in] HANDLE eventHandle
);
Параметры
[in] eventHandle
Дескриптор события.
Возвращаемое значение
Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возможные коды возврата включают, но не ограничиваются ими, значения, показанные в следующей таблице.
Код возврата | Описание |
---|---|
|
Параметр eventHandle имеет значение NULL или недопустимый дескриптор. |
|
Аудиопоток не инициализирован для буферизации на основе событий. |
|
Аудиопоток не инициализирован. |
|
Устройство конечной точки звука было отключено, или звуковое оборудование или связанные аппаратные ресурсы были перенастроены, отключены, удалены или иным образом стали недоступными для использования. |
|
Аудиослужба Windows не запущена. |
Комментарии
Этот метод требует предварительной инициализации интерфейса IAudioClient . Все вызовы этого метода завершаются ошибкой AUDCLNT_E_NOT_INITIALIZED до тех пор, пока клиент не инициализирует аудиопоток, вызвав метод IAudioClient::Initialize .
Во время инициализации потока клиент может включить буферизацию на основе событий. Для этого клиент вызывает метод IAudioClient::Initialize с AUDCLNT_STREAMFLAGS_EVENTCALLBACK флагом. После включения управляемой событиями буферизации и перед вызовом метода IAudioClient::Start для запуска потока клиент должен вызвать SetEventHandle , чтобы зарегистрировать дескриптор событий, который система будет сигнализировать каждый раз, когда буфер будет готов к обработке клиентом.
Дескриптор события должен находиться в состоянии без знака в момент, когда клиент вызывает метод Start .
Если клиент включил буферизацию потока на основе событий, но клиент вызывает метод Start для этого потока без предварительного вызова SetEventHandle, вызов Start завершится ошибкой и возвращает код ошибки.
Если клиент не включает буферизацию потока на основе событий, но пытается задать дескриптор события для потока путем вызова SetEventHandle, вызов завершится ошибкой и возвратом кода ошибки.
Пример кода, который вызывает метод SetEventHandle , см. в разделе Потоки в монопольном режиме.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | audioclient.h |