[DllImport("coredll.dll", SetLastError=true)]
protected static extern int waveOutSetVolume(IntPtr device, uint volume);
Declare Function waveOutSetVolume Lib "coredll.dll" (ByVal device As IntPtr, ByVal volume As Integer) As Integer
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!
// The volume to pass in (0xffff or 65535 equals max volume)
uint newVolume = (uint)0xffff;
// Set this value in the left and right channels
uint NewVolumeAllChannels = ((( uint )newVolume & 0x0000ffff) | (( uint )newVolume << 16));
// Call func to set volume.
waveOutSetVolume(IntPtr.Zero, NewVolumeAllChannels);
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!