Ist es möglich, die Spitzenwerte für einzelne Programme unter Windows 7 zu erhalten, und wenn ja, wie?
Mit WASAPI kann man das gesamte Systemaudio über ein Loopback-Gerät erfassen, aber es wird nicht zwischen den Ausgaben verschiedener Programme unterschieden. Diese Frage bezieht sich auf das Erfassen von Audio für eine bestimmte Anwendung , aber die Antworten scheinen unerschwinglich, wenn es darum geht, alle Programme aufzunehmen, die Audio einzeln abspielen. Dies muss möglich sein, da SndVol es tun kann, wie im Bild unten gezeigt. Die Frage ist, wie wird es erreicht? Wird es durch unexponierte API-Aufrufe durchgeführt oder ist es tatsächlich möglich, so etwas auch über WASAPI zu erreichen?
Danke.
Sie listen Audio-Sessions auf und erhalten IAudioSessionControl
interfaces (MSDN Code-Snippet ). Der fehlende Teil ist, dass Sie IAudioMeterInformation
interface von IAudioSessionControl
abfragen können, die Sie bereits halten.
Wenn der Audioendpunkt Peak-Meter unterstützt, können Sie diese Schnittstelle abrufen und IMeterInformation::GetPeakValue
für einzelne Sessions verwenden. Und das ist, was SndVol angeblich macht.
Hier ist ein Code, der das Ding
Wenn Sie WASAPI betrachten, gibt es eine Schnittstelle zum Erfassen Audio von einem bestimmten Client, aber ich sehe keine höhere Schnittstelle zur Bestimmung der Spitzenpegel. Möglicherweise müssen Sie dazu etwas Code schreiben, es sei denn, es gibt eine Bibliothek, die jemand erstellt hat, um mit diesem WASPI Audio-Arbeiten auf höherer Ebene auszuführen. CHEERS!
Hier ist eine weitere Einstellung: IChannelAudioVolume :: GetChannelVolume . Ich folgte dem Thread auf MSDN von SndVol, und hier bin ich gelandet. Zitat von der Webseite: "Die GetChannelVolume-Methode ruft die Lautstärke für den angegebenen Kanal in der Audiositzung ab." Sie müssten eine Software schreiben, um den Spitzenwert aus diesem Stream zu extrahieren. Meine schnelle Schätzung wäre nur zu vergleichen, ob der aktuelle Wert größer als der letzte größte Wert ist. Wenn dies der Fall ist, wird der aktuelle Wert zur Spitze.
CHEERS!