Da Sie C# als Tag legen, hier ist eine kleine C# Konsole-Anwendung, die es erhält. Es basiert auf der GetMasterVolumeLevelScalar Methode (Vista oder höher).
GetMasterVolumeLevelScalar Die Methode ruft die Master-Lautstärkepegel des der Audiostrom, der die Audio-Endpunktgerät betritt oder verlässt. Der Lautstärkepegel wird als normalisierter, Audio-Tapered-Wert im Bereich von 0,0 bis 1,0 ausgedrückt.
class Program
{
static void Main(string[] args)
{
Console.WriteLine(VolumeUtilities.GetMasterVolume());
}
}
public static class VolumeUtilities
{
public static float GetMasterVolume()
{
// get the speakers (1st render + multimedia) device
IMMDeviceEnumerator deviceEnumerator = (IMMDeviceEnumerator)(new MMDeviceEnumerator());
IMMDevice speakers;
const int eRender = 0;
const int eMultimedia = 1;
deviceEnumerator.GetDefaultAudioEndpoint(eRender, eMultimedia, out speakers);
object o;
speakers.Activate(typeof(IAudioEndpointVolume).GUID, 0, IntPtr.Zero, out o);
IAudioEndpointVolume aepv = (IAudioEndpointVolume)o;
float volume = aepv.GetMasterVolumeLevelScalar();
Marshal.ReleaseComObject(aepv);
Marshal.ReleaseComObject(speakers);
Marshal.ReleaseComObject(deviceEnumerator);
return volume;
}
[ComImport]
[Guid("BCDE0395-E52F-467C-8E3D-C4579291692E")]
private class MMDeviceEnumerator
{
}
[Guid("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
private interface IAudioEndpointVolume
{
void _VtblGap1_6();
float GetMasterVolumeLevelScalar();
}
[Guid("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
private interface IMMDeviceEnumerator
{
void _VtblGap1_1();
[PreserveSig]
int GetDefaultAudioEndpoint(int dataFlow, int role, out IMMDevice ppDevice);
}
[Guid("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
private interface IMMDevice
{
[PreserveSig]
int Activate([MarshalAs(UnmanagedType.LPStruct)] Guid iid, int dwClsCtx, IntPtr pActivationParams, [MarshalAs(UnmanagedType.IUnknown)] out object ppInterface);
}
}
Ich schlage vor, lesen Sie Ihre Frage ein und fragen Sie sich - wird jemand meine Frage verstehen und in der Lage sein, sie zu beantworten? http://tinyurl.com/so-hints – Oded
Bitte definieren Sie "aktuellen Sound". Es klingt, als ob Sie eine Lösung gefunden hätten, um diskrete Beispielwerte zurückzugeben - wenn Sie das nicht brauchen, was brauchen Sie? – driis
Ihre Frage ist nicht besonders klar, was das Problem ist. Bitte bearbeiten Sie Ihre Frage erneut und fügen Sie Dinge hinzu wie: Was genau, Sie versuchen es zu tun. Welche Dinge haben Sie ausprobiert (ein kurzes Codebeispiel würde helfen oder ein Link zu einer anderen Website, auf dem jemand anderes etwas Ähnliches zeigt). Was hat nicht mit den Dingen funktioniert, die du ausprobiert hast: Was hast du erwartet und was war das Ergebnis? –