private void SetAudio(AudioSource audio) { MCI_DGV_SETAUDIO_PARMS s = new MCI_DGV_SETAUDIO_PARMS(); int err; StringBuilder buf = new StringBuilder(1000); if (deviceID > 0) { err = mciSendCommandA(deviceID, MCI_SETAUDIO, MCI_WAIT | MCI_SET_OFF, ref s); if (err != 0) { mciGetErrorStringA(err, buf, 1000); //throw new ApplicationException("设置声道出错," + buf.ToString()); } else { switch (audio) { case AudioSource.Left: s.dwValue = MCI_DGV_SETAUDIO_SOURCE_LEFT; break; case AudioSource.Stereo: s.dwValue = MCI_DGV_SETAUDIO_SOURCE_STEREO; break; case AudioSource.Right: s.dwValue = MCI_DGV_SETAUDIO_SOURCE_RIGHT; break; } s.dwItem = MCI_DGV_SETAUDIO_SOURCE; err = mciSendCommandA(deviceID, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM, ref s); if (err != 0) { mciGetErrorStringA(err, buf, 1000); //throw new ApplicationException("设置声道出错," + buf.ToString()); } else { s.dwValue = MCI_DGV_SETAUDIO_SOURCE_AVERAGE; s.dwItem = MCI_DGV_SETAUDIO_SOURCE; err = mciSendCommandA(deviceID, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM, ref s); if (err != 0) { mciGetErrorStringA(err, buf, 1000); //throw new ApplicationException("设置声道出错," + buf.ToString()); } else { err = mciSendCommandA(deviceID, MCI_SETAUDIO, MCI_WAIT | MCI_SET_ON, ref s); if (err != 0) { mciGetErrorStringA(err, buf, 1000); //throw new ApplicationException("设置声道出错," + buf.ToString()); } } } } } }
private void SetVolume(int volume) { int err; StringBuilder buf = new StringBuilder(1000); MCI_DGV_SETAUDIO_PARMS mdsp = new MCI_DGV_SETAUDIO_PARMS(); if (deviceID > 0) { err = mciSendCommandA(deviceID, MCI_SETAUDIO, MCI_WAIT | MCI_SET_OFF, ref mdsp); if (err != 0) { mciGetErrorStringA(err, buf, 1000); //throw new ApplicationException("设置声音出错," + buf.ToString()); } else { if (volume > MAX_VOLUME) volume = MAX_VOLUME; if (volume < MIN_VOLUME) volume = MIN_VOLUME; mdsp.dwValue = volume; mdsp.dwItem = MCI_DGV_SETAUDIO_VOLUME; err = mciSendCommandA(deviceID, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM, ref mdsp); if (err != 0) { mciGetErrorStringA(err, buf, 1000); //throw new ApplicationException("设置声音出错," + buf.ToString()); } else { err = mciSendCommandA(deviceID, MCI_SETAUDIO, MCI_WAIT | MCI_SET_ON, ref mdsp); if (err != 0) { mciGetErrorStringA(err, buf, 1000); //throw new ApplicationException("设置声音出错," + buf.ToString()); } } } } }
private static extern int mciSendCommandA( Int32 wDeviceID, UInt32 uMessage, Int32 dwParam, ref MCI_DGV_SETAUDIO_PARMS Any);