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);