我的表单中有一个轨迹栏,其范围为1-100(用于音量)。我正在寻找一种将音频输出音量设置为我输入的值(例如,轨迹栏的值)的方法,但仅适用于我的应用程序。
在网路上找不到任何东西。
问候
最佳答案
private void trackBar1_ValueChanged(object sender, EventArgs e)
{
// Calculate the volume that's being set
double newVolume = ushort.MaxValue * trackBar1.Value/ 10.0;
uint v = ((uint) newVolume) & 0xffff;
uint vAll = v | (v << 16);
// Set the volume
int retVal = NativeMethods.WaveOutSetVolume(IntPtr.Zero, vAll);
bool playRetVal = NativeMethods.PlaySound("tada.wav", IntPtr.Zero, 0x2001);
}
}
static class NativeMethods
{
[DllImport("winmm.dll", EntryPoint = "waveOutSetVolume")]
public static extern int WaveOutSetVolume(IntPtr hwo, uint dwVolume);
[DllImport("winmm.dll", SetLastError = true)]
public static extern bool PlaySound(string pszSound, IntPtr hmod, uint fdwSound);
}
这应该可以正常工作。我希望我不会错过任何东西。
关于c# - 处理量和跟踪栏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32201941/