Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Метод GetService обращается к дополнительным службам из объекта звукового клиента.
Синтаксис
HRESULT GetService(
[in] REFIID riid,
[out] void **ppv
);
Параметры
[in] riid
Идентификатор интерфейса для запрошенной службы. Клиент должен задать для этого параметра одно из следующих значений REFIID:
IID_IAudioCaptureClient
IID_IAudioClientDuckingControl
IID_IAudioClock
IID_IAudioRenderClient
IID_IAudioSessionControl
IID_IAudioStreamVolume
IID_IChannelAudioVolume
IID_IMFTrustedOutput
IID_ISimpleAudioVolume
Дополнительные сведения см. в разделе "Примечания".
[out] ppv
Указатель на переменную указателя, в которую метод записывает адрес экземпляра запрошенного интерфейса. С помощью этого метода вызывающий объект получает подсчитываемую ссылку на интерфейс. Вызывающий объект отвечает за освобождение интерфейса, если он больше не нужен, вызывая метод выпуска интерфейса. Если вызов GetService завершается ошибкой, *ppv имеет значение NULL.
Возвращаемое значение
Если метод выполнен успешно, он возвращает S_OK. В случае сбоя возможные коды возврата включаются, но не ограничиваются значениями, приведенными в следующей таблице.
| Код возврата | Description |
|---|---|
|
Параметр ppv имеет значение NULL. |
|
Запрошенный интерфейс недоступен. |
|
Аудиопоток не инициализирован. |
|
Вызывающий объект пытался получить доступ к интерфейсу IAudioCaptureClient в конечной точке отрисовки или интерфейсу IAudioRenderClient в конечной точке записи. |
|
Устройство конечной точки звука было отключено, или звуковое оборудование или связанные аппаратные ресурсы были перенастроены, отключены, удалены или недоступны для использования. |
|
Ресурсы потока были недействительны. Эта ошибка может возникать по следующим причинам: — поток приостановлен. — Поток эксклюзивной или разгрузки отключен. — Упаковаемое приложение с монопольным режимом или потоком разгрузки. — Поток "защищенных выходных данных" закрыт. |
|
Звуковая служба Windows не запущена. |
Замечания
Для этого метода требуется предварительная инициализация интерфейса IAudioClient . Все вызовы этого метода завершаются ошибкой AUDCLNT_E_NOT_INITIALIZED до тех пор, пока клиент не инициализирует аудиопоток, успешно вызвав метод IAudioClient::Initialize .
Метод GetService поддерживает следующие интерфейсы служб:
- IAudioCaptureClient
- IAudioClock
- IAudioRenderClient
- IAudioSessionControl
- IAudioStreamVolume
- IChannelAudioVolume
- МВФTrustedOutput
- ISimpleAudioVolume
Сведения об использовании доверенных звуковых драйверов в OTAs см. в разделе "Защищенный режим пользователя" (PUMA).
Обратите внимание, что активация МВФTrustedOutput через этот механизм работает независимо от того, работает ли вызывающий объект в PMP. Однако если вызывающий объект не работает в защищенном процессе (т. е. вызывающий объект не находится в pmP Media Foundation), звуковая OTA может не работать в PMP, а параметры защиты являются менее надежными.
Чтобы получить идентификатор интерфейса для интерфейса службы, используйте оператор __uuidof . Например, идентификатор интерфейса IAudioCaptureClient определяется следующим образом:
const IID IID_IAudioCaptureClient __uuidof(IAudioCaptureClient)
Сведения о операторе __uuidof см. в документации по пакету SDK для Windows.
Чтобы освободить объект IAudioClient и освободить все связанные с ним ресурсы, клиент должен освободить все ссылки на все объекты службы, созданные путем вызова GetService, помимо вызова release в самом интерфейсе IAudioClient . Клиент должен освободить службу из того же потока, который освобождает объект IAudioClient .
Интерфейсы IAudioSessionControl, IAudioStreamVolume, IChannelAudioVolume и ISimpleAudioVolume контролируют и отслеживают аспекты аудиосессий и потоков общего режима. Эти интерфейсы не работают с потоками в монопольном режиме.
Примеры кода, вызывающие метод GetService , см. в следующих разделах:
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows Vista [классические приложения | Приложения UWP] |
| минимальный поддерживаемый сервер | Windows Server 2008 [классические приложения | Приложения UWP] |
| целевая платформа | Windows |
| Header | audioclient.h |