[DllImport("coredll.dll", SetLastError=true)]
protected static extern int waveOutSetVolume(IntPtr device, uint volume);
TODO
None.
values for 'volume' are between value between 0 (off) and 65536 (max)
if there is only one audio device, you can set 'device' to null (or IntPtr.Zero)
Please add some!
uint val = (uint)65536;
waveOutSetVolume(IntPtr.Zero, val);
This example above don't work for me.
But I create this example below.
public enum Volumes : int {
OFF = 0,
LOW = 858993459,
NORMAL = 1717986918,
MEDIUM = -1717986919,
HIGH = -858993460,
VERY_HIGH = -1
}
[DllImport("coredll.dll", SetLastError=true)]
internal static extern int waveOutSetVolume(IntPtr device, int volume);
[DllImport("coredll.dll", SetLastError=true)]
internal static extern int waveOutGetVolume(IntPtr device, ref int volume);
public static Volumes Volume {
get {
int v = (int)0;
waveOutGetVolume(IntPtr.Zero, ref v);
switch (v) {
case (int)Volumes.OFF: return Volumes.OFF;
case (int)Volumes.LOW: return Volumes.LOW;
case (int)Volumes.NORMAL: return Volumes.NORMAL;
case (int)Volumes.MEDIUM: return Volumes.MEDIUM;
case (int)Volumes.HIGH: return Volumes.HIGH;
case (int)Volumes.VERY_HIGH: return Volumes.VERY_HIGH;
default: return Volumes.OFF;
}
}
set { waveOutSetVolume(IntPtr.Zero, (int)value); }
}
Do you know one? Please contribute it!