Gruppierungsparameter
Ein Gruppierungsparameter identifiziert eine Sammlung von Audiositzungen , die alle durch eine einzelne Lautstärkeregelung im Systemlautstärkesteuerungsprogramm Sndvol gesteuert werden. Der Gruppierungsparameter ist eine GUID, die die Sammlung innerhalb des Bereichs des Computers eindeutig identifiziert.
Der Zweck eines Gruppierungsparameters ähnelt dem der Sitzungs-GUID für eine prozessübergreifende Sitzung. Das heißt, der Gruppierungsparameter ermöglicht es dem Benutzer, eine Sammlung von Datenströmen aus einer beliebigen Anzahl von Prozessen als einzelne Einheit zu steuern. Der Gruppierungsparameter dient diesem Zweck jedoch in Fällen, in denen prozessübergreifende Sitzungen keine Lösung bereitstellen können.
Wenn mehrere Clients ihre jeweiligen Streams separaten Sitzungen zuweisen, aber allen Sitzungen denselben Gruppierungsparameter zuweisen, zeigt Sndvol eine einzelne Lautstärkesteuerung für diese Sitzungen an. Um Gruppierungsparameter zu unterstützen, muss Sndvol oder eine ähnliche Volumesteuerungsanwendung folgendes ausführen:
- Überprüfen Sie vor dem Anzeigen der Lautstärkeregler die Gruppierungsparameter aller aktiven Sitzungen. Gruppieren Sie alle Sitzungen, die über denselben Gruppierungsparameter verfügen, unter einer einzelnen Lautstärkesteuerung.
- Wenn der Benutzer die Einstellung eines Lautstärkereglers für einen bestimmten Gruppierungsparameter ändert, aktualisieren Sie die Lautstärkeebenen aller Sitzungen, die diesen Gruppierungsparameter gemeinsam nutzen.
Gruppierungsparameter helfen, die Anzahl von Lautstärkesteuerelementen zu reduzieren, die von Sndvol angezeigt werden. Benutzer können verwirrt werden, wenn Sndvol die Anzeige mit zu vielen Steuerelementen überladen. Ohne Unterstützung für Gruppierungsparameter würde Sndvol immer eine separate Lautstärkeregelung für jede Sitzung anzeigen, was unter Umständen nicht in allen Fällen geeignet ist. Darüber hinaus bieten Gruppierungsparameter eine bequeme Möglichkeit, um sicherzustellen, dass Sitzungen, die ähnliche Arten von Audioinhalten enthalten, problemlos auf dieselbe Lautstärkeebene festgelegt werden können.
Wie bereits erläutert, weisen audio-APIs auf höherer Ebene ihre Streams in der Regel der standardmäßigen, prozessspezifischen Sitzung zu (identifiziert durch den Sitzungs-GUID-Wert GUID_NULL). Mit dieser Standardeinstellung kann Sndvol für jeden Clientanwendungsprozess eine separate Lautstärkesteuerung anzeigen, was häufig das gewünschte Verhalten ist. Wenn mehrere Instanzen desselben Clients in separaten Prozessen ausgeführt werden, aber eine einzelne, freigegebene Volumesteuerung erfordern, können die Clients ihre Streams einfach derselben prozessübergreifenden Sitzung zuweisen. Keiner dieser Fälle erfordert die Verwendung von Gruppierungsparametern. Ein wichtiger Fall, wie in Microsoft Internet Explorer veranschaulicht, erfordert jedoch die Verwendung von Gruppierungsparametern, um das gewünschte Verhalten zu erreichen.
Internet Explorer ermöglicht Benutzern das Öffnen mehrerer Browserfenster, und diese Fenster werden möglicherweise nicht alle im selben Prozess ausgeführt. Benutzer könnten verwirrt werden, wenn Sndvol für jede Anwendung instance eine separate Lautstärkeregelung anzeigte, die alle die gleiche Bezeichnung wie "Internet Explorer" hatten. Eine prozessübergreifende Sitzung ist in diesem Fall keine praktikable Lösung. Wenn mehrere Instanzen des Internets Explorer in unterschiedlichen Prozessen ausgeführt werden, können sie möglicherweise nicht alle ihre Audiodatenströme einer einzelnen prozessübergreifenden Sitzung zuweisen. Der Grund ist, dass im Internet Explorer Fenstern möglicherweise Instanzen von Windows Medienwiedergabe oder ein anderes Multimedia-Plug-In ausgeführt werden, das eine höhere Audio-API verwendet, um die Audiodatenströme wiederzugeben. Diese APIs weisen die Streams in einem Prozess in der Regel einer prozessspezifischen Standardsitzung zu. Internet Explorer hat keine Kontrolle über die Zuweisung dieser Streams zu Sitzungen.
WASAPI löst dieses Problem, indem jedem instance von Internet Explorer ermöglicht wird, auf die Sitzungssteuerelemente für seine standardmäßige, prozessspezifische Sitzung zuzugreifen und dieser Sitzung einen Gruppierungsparameter zuzuweisen. Wenn alle Instanzen von Internet Explorer allen Audiositzungen denselben Gruppierungsparameter zuweisen, zeigt Sndvol eine einzelne Lautstärkesteuerung für diese Sitzungen an.
Standardmäßig gehört eine Sitzung keiner Gruppierung an. Wenn ein Client einer Gruppierung nicht explizit eine Sitzung zuweist, zeigt Sndvol ein dediziertes Volume-Steuerelement für diese Sitzung an. Der Gruppierungsparameterwert GUID_NULL gibt an, dass eine Sitzung keiner Gruppierung angehört. Wenn kein Client einer Sitzung explizit einen Gruppierungsparameter zugewiesen hat, ist der Gruppierungsparameterwert für diese Sitzung standardmäßig GUID_NULL.
Ein Client kann die Gruppierung, der eine Sitzung zugewiesen ist, dynamisch ändern.
Eine Gruppierung kann eine beliebige Kombination aus prozessübergreifenden Sitzungen und prozessspezifischen Sitzungen auf einem Audioendpunktgerät umfassen.
Die Sndvol-Benutzeroberfläche ermöglicht es dem Benutzer, die Lautstärkesteuerelemente jeweils nur für ein Audioendpunktgerät anzuzeigen. Wenn der Benutzer die Lautstärkesteuerung für ein bestimmtes Gerät anpasst, sind die Lautstärken von Sitzungen, die eine Verbindung mit anderen Geräten herstellen, nicht betroffen. Insbesondere wirkt sich eine Lautstärkeregelung für einen bestimmten Gruppierungsparameter nur auf Sitzungen aus, die den Gruppierungsparameter gemeinsam nutzen und mit dem aktuell ausgewählten Gerät verbunden sind. Eine Sitzung, die zufällig über einen identischen Gruppierungsparameter verfügt, aber mit einem anderen Gerät verbunden ist, ist nicht betroffen.
Wie zuvor beschrieben, beschrifte Sndvol jedes angezeigte Lautstärkesteuerelement mit einem Anzeigenamen und einem Symbol. Im Fall eines Lautstärkereglers für eine Gruppierung wählt Sndvol willkürlich eine der Sitzungen in der Gruppierung als Quelle für den Anzeigenamen und das Symbol aus, die mit der Lautstärkeregelung angezeigt werden. Um sicherzustellen, dass Sndvol immer denselben Anzeigenamen und dasselbe Symbol für eine Gruppierung anzeigt, sollten daher alle Anwendungsinstanzen, die dieser Gruppierung Sitzungen zuweisen, sicherstellen, dass ihre jeweiligen Sitzungen den gleichen Anzeigenamen und das gleiche Symbol haben. Weitere Informationen zu Anzeigenamen und Symbolen finden Sie unter Audiositzungen.
Eine Anwendung wie Sndvol kann sich registrieren, um Benachrichtigungen zu erhalten, wenn sich der Gruppierungsparameter für eine Sitzung ändert. Solche Benachrichtigungen können nützlich sein, wenn die Anwendung Informationen über die Zuweisung von Sitzungen zu Gruppierungsparametern zwischenspeichert. Eine Benachrichtigung informiert die Anwendung darüber, dass die zwischengespeicherten Informationen möglicherweise nicht mehr gültig sind.
Um einer Sitzung einen Gruppierungsparameter zuzuweisen, rufen Sie die IAudioSessionControl::SetGroupingParam-Methode auf. Um den Gruppierungsparameter abzurufen, der einer Sitzung zugewiesen ist, rufen Sie die IAudioSessionControl::GetGroupingParam-Methode auf.
Zugehörige Themen