/// <summary> /// 关闭当前播放文件。 /// </summary> public void Close() { int err; StringBuilder buf = new StringBuilder(1000); if (deviceID > 0) { Stop(); MCI_GENERIC_PARMS gen = new MCI_GENERIC_PARMS(); err = mciSendCommandA(deviceID, MCI_CLOSE, MCI_WAIT, ref gen); if (err != 0) { mciGetErrorStringA(err, buf, 1000); //throw new ApplicationException(buf.ToString()); } deviceID = 0; devCaps = DevCaps.None; size = Size.Empty; if ((int)timer.Tag == 1) { timer.Tag = 0; timer.Stop(); } } }
private void GetDevcaps() { int devType = 0; if (GetDevcap(MCI_GETDEVCAPS_CAN_PLAY) > 0) devCaps = DevCaps.CanPlay; if (GetDevcap(MCI_GETDEVCAPS_CAN_RECORD) > 0) devCaps |= DevCaps.CanRecord; if (GetDevcap(MCI_GETDEVCAPS_CAN_SAVE) > 0) devCaps |= DevCaps.CanSave; if (GetDevcap(MCI_GETDEVCAPS_CAN_EJECT) > 0) devCaps |= DevCaps.CanEject; if (GetDevcap(MCI_GETDEVCAPS_HAS_VIDEO) > 0) { if (ShowHnd() == 0) devCaps |= DevCaps.CanShowVideo; } devType = GetDevcap(MCI_GETDEVCAPS_DEVICE_TYPE); if (devType == MCI_DEVTYPE_ANIMATION || devType == MCI_DEVTYPE_DIGITAL_VIDEO || devType == MCI_DEVTYPE_VCR || devType == MCI_DEVTYPE_OVERLAY) { devCaps = devCaps | DevCaps.CanStep; } else if (devType == MCI_DEVTYPE_CD_AUDIO) { deviceType = DeviceType.CDAudio; } else if (devType == MCI_DEVTYPE_VIDEODISC) { deviceType = DeviceType.VideoDisc; } }