Работа с ролями устройств
API MMDevice поддерживает функции ролей устройств. Перечисление ERole определяет роли устройства, поддерживаемые API MMDevice.
Заметка
Хотя API MMDevice поддерживает роли устройств, пользовательский интерфейс в Windows Vista не реализует поддержку этой функции.
Приложение может использовать API MMDevice для поддержки ролей устройств и с помощью методов IMMDeviceEnumerator::GetDefaultAudioEndpoint и IMMNotificationClient::OnDefaultDeviceChanged. Однако пользовательский интерфейс в Windows Vista не поддерживает назначение отдельных ролей различным устройствам. В Windows Vista пользовательский интерфейс позволяет пользователю выбрать звуковое устройство по умолчанию для отрисовки и звукового устройства по умолчанию для записи. Когда пользователь выбирает устройство вывода или записи по умолчанию, система назначает всем трем ролям устройств (eConsole, eMultimedia и eCommunications) этому устройству. Приложения не могут изменять роли, назначенные устройствам конечной точки аудио. Операционная система позволяет назначать роли устройства только пользователю.
Клиент может зарегистрироваться для получения уведомлений от MMDevice API каждый раз, когда происходит изменение в назначении ролей для аудиоустройств конечной точки. При перемещении роли с одного устройства на другое клиент может выбрать, следует ли продолжать воспроизводить (или записывать) потоки через то же устройство или переключать потоки на другое устройство. По умолчанию потоки продолжают воспроизводиться (или записываться) с помощью исходного устройства. Чтобы переключить потоки на другое устройство, клиент должен удалить потоки на исходном устройстве и создать потоки замены на новом устройстве. В Windows 7 клиент может прослушивать новые уведомления, чтобы реализовать простой коммутатор без прерывания воспроизведения или сеанса записи. Дополнительные сведения см. в маршрутизации потоков.
Если вы планируете использовать Windows Vista для тестирования приложения, можно настроить тестовую среду, чтобы убедиться, что приложение работает должным образом, когда пользователь может назначать отдельные роли устройств разным устройствам. Для получения дополнительной информации отправьте электронное письмо на uaa@microsoft.com.
Устройства связи
Пользовательский интерфейс Windows 7 имеет возможность добавления устройств связи. Панель управления звуковой позволяет пользователю выбрать каждое из устройств связи по умолчанию для воспроизведения и записи аудиопотока. По умолчанию при подключении нового устройства к компьютеру операционная система выполняет автоматическое обнаружение ролей и определяет, подходит ли устройство для роли связи. Ориентируясь на устройства связи, вы можете разрабатывать приложения, использующие основные API аудио для реализации решений для связи между ПК и телефоном. Например, приложение VoIP может назначать входные и выходные голосовые потоки к устройствам входа и вывода по умолчанию с ролью eCommunications. Как и любой другой поток, приложение связи должно получить ссылку на конечную точку устройства связи путем вызова IMMDeviceEnumerator::GetDefaultAudioEndpoint. В этом вызове приложение должно указать eCommunications в параметре Role. Операции потока WASAPI на потоке, открытом на устройстве связи, аналогичны операциям на любом другом аудиопотоке. Приложение связи может улучшить взаимодействие с пользователем, реализуя такие поведение, как утка, обрабатывая уведомления из конечной точки устройства. Дополнительные сведения см. в разделе Использованиеустройства связи.
Автоматическое обнаружение ролей устройств
Рассмотрим сценарий, в котором компьютер имеет устройство вывода по умолчанию — динамики, и устройство записи по умолчанию — микрофон. Пользователь подключает usb-гарнитуру к компьютеру. После установки соответствующих драйверов операционная система пытается определить роль, назначаемую для нового звукового устройства.
В Windows 7 функция обнаружения ролей устройства значительно улучшена, чтобы определить соответствующие роли, подходящие для звуковых устройств. Все звуковые устройства содержат набор параметров конфигурации, заполненных ИЗГОТОВИТЕЛЕМ устройств, которые помогают системе решить, как использовать устройство. К этим параметрам относятся такие сведения, как физическое расположение звукового разъема, тип устройства, подтип джека и возможности обнаружения, чтобы система может определить, подключено ли устройство. Извлекая эти значения с устройства, операционная система определяет роль, которую нужно назначить устройству. В этом сценарии система запросила устройство USB-гарнитуры, выполнила автоматическое обнаружение ролей и определила, что устройство лучше всего подходит для использования в качестве средства связи.
Приложение также может получить сведения о разъеме с помощью Core Audio API. Дополнительные сведения см. в разделе IKsJackDescription и IKsJackDescription2.
Связанные разделы