Freigeben über


Arbeiten mit Geräterollen

Die MMDevice-API unterstützt Geräterollen. Die ERole-Enumeration definiert die Geräterollen, die von der MMDevice-API unterstützt werden.

Hinweis

Obwohl die MMDevice-API Geräterollen unterstützt, implementiert die Benutzeroberfläche in Windows Vista keine Unterstützung für dieses Feature.

 

Eine Anwendung kann die MMDevice-API verwenden, um Geräterollen über die Methoden IMMDeviceEnumerator::GetDefaultAudioEndpoint und IMMNotificationClient::OnDefaultDeviceChanged zu unterstützen. Die Benutzeroberfläche in Windows Vista unterstützt jedoch die Zuweisung einzelner Rollen zu verschiedenen Geräten nicht. In Windows Vista kann der Benutzer über die Benutzeroberfläche ein Standardaudiogerät für das Rendern und ein Standardaudiogerät für die Aufnahme auswählen. Wenn der Benutzer ein Standardrendering- oder Erfassungsgerät auswählt, weist das System diesem Gerät alle drei Geräterollen (eConsole, eMultimedia und eCommunications) zu. Anwendungen können die Rollen, die Audioendpunktgeräten zugewiesen sind, nicht ändern. Das Betriebssystem erlaubt nur dem Benutzer, Geräterollen zuzuweisen.

Ein Client kann sich selbst registrieren, um bei jeder Änderung bei der Zuweisung von Rollen zu Audioendpunktgeräten eine Benachrichtigung von der MMDevice-API zu erhalten. Wenn eine Rolle von einem Gerät zum anderen wechselt, kann der Client auswählen, ob seine Streams über dasselbe Gerät weiterhin wiedergegeben (oder aufgezeichnet werden) oder ob die Streams auf ein anderes Gerät umgeschaltet werden sollen. Standardmäßig werden die Streams weiterhin über das originale Gerät wiedergegeben (oder aufgezeichnet). In Windows Vista muss der Client die Streams auf dem ursprünglichen Gerät löschen und Ersatzstreams auf dem neuen Gerät erstellen, um die Streams auf ein anderes Gerät zu wechseln. In Windows 7 kann der Client auf neue Benachrichtigungen lauschen, um einen nahtlosen Wechsel zu implementieren, ohne die Wiedergabe oder die Aufzeichnungssitzung zu unterbrechen. Weitere Informationen finden Sie unter Streamrouting.

Wenn Sie planen, Windows Vista zum Testen Ihrer Anwendung zu verwenden, können Sie eine Testumgebung einrichten, um zu überprüfen, ob sich die Anwendung erwartungsgemäß verhält, wenn der Benutzer einzelne Geräterollen verschiedenen Geräten zuweisen kann. Sollten Sie weitere Informationen benötigen, senden Sie eine E-Mail an uaa@microsoft.com.

Kommunikationsgeräte

Die Windows 7-Benutzeroberfläche bietet die Möglichkeit, Kommunikationsgeräte hinzuzufügen. Über die Sound-Systemsteuerung kann der Benutzer jeweils ein Standardkommunikationsgerät zum Rendern und Aufzeichnen des Audiostreams auswählen. Wenn ein neues Gerät mit dem Computer verbunden ist, führt das Betriebssystem standardmäßig automatische Rollenerkennung durch und bestimmt, ob das Gerät für die Rolle "eCommunication" geeignet ist. Indem Sie Kommunikationsgeräte ansprechen, können Sie Anwendungen entwickeln, die Core Audio-APIs verwenden, um Kommunikationslösungen für PC-Telefone zu implementieren. Beispielsweise kann eine VoIP-Anwendung ihre Spracheingabe- und Ausgabestreams den Standardgeräten für Erfassungs- und Renderingendpunkte mit der Rolle "eCommunications" zuweisen. Wie jeder andere Stream muss eine Kommunikationsanwendung einen Verweis auf den Endpunkt des Kommunikationsgeräts abrufen, indem SIE IMMDeviceEnumerator::GetDefaultAudioEndpoint aufruft. In diesem Aufruf muss die Anwendung eCommunications im Role-Parameter angeben. Die WASAPI-Streamvorgänge für einen Stream, der auf einem Kommunikationsgerät geöffnet wird, ähneln jedem anderen Audiostream. Die Kommunikationsanwendung kann die Benutzerfreundlichkeit verbessern, indem sie Verhaltensweisen implementiert, z. B. Ducking, indem Benachrichtigungen vom Geräteendpunkt verarbeitet werden. Weitere Informationen finden Sie unter Verwenden eines Kommunikationsgeräts.

Automatische Geräterollenerkennung

Betrachten Sie ein Szenario, in dem ein Computer über ein Standardrenderinggerät, die Lautsprecher und ein Standardaufnahmegerät, ein Mikrofon, verfügt. Der Benutzer schließt ein USB-Headset an den Computer an. Nachdem die entsprechenden Treiber installiert wurden, versucht das Betriebssystem, eine Rolle zu erkennen, die dem neuen Audiogerät zugewiesen werden soll.

In Windows 7 wurde die Funktion zur Erkennung von Geräterollen erheblich verbessert, um die geeigneten Rollen für Audiogeräte zu ermitteln. Alle Audiogeräte enthalten eine Reihe von Konfigurationseinstellungen, die vom Geräte-OEM aufgefüllt werden, die dem System bei der Entscheidung helfen, wie das Gerät verwendet werden soll. Diese Einstellungen umfassen Informationen wie den physischen Standort der Audiobuchse des Gerätetyps, den Untertyp der Buchse und Erkennungsfunktionen, damit das System bestimmen kann, ob das Gerät angeschlossen ist. Durch Abrufen dieser Werte vom Gerät bestimmt das Betriebssystem die Rolle, die dem Gerät zugewiesen werden soll. In diesem Szenario hat das System das USB-Headset-Gerät abgefragt, eine automatische Rollenerkennung durchgeführt und entschieden, dass das Gerät am besten als Kommunikationsgerät geeignet ist.

Eine Anwendung kann auch Mithilfe der Core-Audio-APIs Klinkeninformationen abrufen. Weitere Informationen finden Sie unter IKsJackDescription und IKsJackDescription2.

Geräterollen