Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die SetLevelAllChannels-Methode legt die Lautstärkepegel aller Kanäle im Audiostream in Dezibel fest.
Syntax
HRESULT SetLevelAllChannels(
[in] float [] aLevelsDB,
[in] ULONG cChannels,
[in] LPCGUID pguidEventContext
);
Parameter
[in] aLevelsDB
Zeiger auf ein Array von Volumeebenen. Dieser Parameter verweist auf ein vom Aufrufer zugewiesenes Floatarray , in das die Methode die neuen Volumeebenen in Dezibel für alle Kanäle schreibt. Die -Methode schreibt die Ebene für einen bestimmten Kanal in das Arrayelement, dessen Index mit der Kanalnummer übereinstimmt. Wenn der Audiostream n Kanäle enthält, sind die Kanäle 0 bis n–1 nummeriert. Um die Anzahl der Kanäle im Stream abzurufen, rufen Sie die IPerChannelDbLevel::GetChannelCount-Methode auf.
[in] cChannels
Die Anzahl der Elemente im Array aLevelsDB . Wenn dieser Parameter nicht mit der Anzahl von Kanälen im Audiostream übereinstimmt, schlägt die Methode fehl, ohne das Array aLevelsDB zu ändern.
[in] pguidEventContext
Kontextwert für die IControlChangeNotify::OnNotify-Methode . Dieser Parameter verweist auf eine Ereigniskontext-GUID. Wenn der SetLevelAllChannels-Aufruf den Status des Ebenensteuerelements ändert, erhalten alle Clients, die IControlChangeNotify-Schnittstellen mit diesem Steuerelement registriert haben, Benachrichtigungen. Bei der Implementierung der OnNotify-Methode kann ein Client die Ereigniskontext-GUID überprüfen, um zu ermitteln, ob er oder ein anderer Client die Quelle des Steuerelementänderungsereignisses ist. Wenn der Aufrufer einen NULL-Zeiger für diesen Parameter bereitstellt, empfängt die Benachrichtigungsmethode des Clients einen NULL-Kontextzeiger .
Rückgabewert
Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Wenn ein Fehler auftritt, können mögliche Rückgabecodes die in der folgenden Tabelle gezeigten Werte umfassen, sind jedoch nicht darauf beschränkt.
| Rückgabecode | Beschreibung |
|---|---|
|
Der Parameter cChannels entspricht nicht der Anzahl von Kanälen. |
|
Zeiger aLevelsDB ist NULL. |
|
Nicht genügend Arbeitsspeicher. |
Hinweise
Wenn der angegebene Ebenenwert für einen Kanal den Bereich überschreitet, den die IPerChannelDbLevel::GetLevelRange-Methode für diesen Kanal meldet, wird der Wert vom SetLevelAllChannels-Aufruf in den unterstützten Bereich eingeschlossen und erfolgreich abgeschlossen. Ein anschließender Aufruf der IPerChannelDbLevel::GetLevel-Methode ruft den tatsächlichen Wert ab, der für diesen Kanal verwendet wird.
Anforderungen
| Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
| Zielplattform | Windows |
| Kopfzeile | devicetopology.h |
Weitere Informationen
IPerChannelDbLevel-Schnittstelle