IPerChannelDbLevel::SetLevelAllChannels-Methode (devicetopology.h)
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