private void ShowDisplay(Rectangle rect) { StringBuilder buf = new StringBuilder(1000); int err = 0; MCI_OVLY_RECT_PARMS dwParam2 = new MCI_OVLY_RECT_PARMS(); dwParam2.rect = rect; if (deviceID > 0 && (devCaps & DevCaps.CanShowVideo) == DevCaps.CanShowVideo) { err = mciSendCommandA(deviceID, MCI_PUT, MCI_WAIT | MCI_ANIM_RECT | MCI_ANIM_PUT_DESTINATION, ref dwParam2); if (err != 0) { mciGetErrorStringA(err, buf, 1000); //throw new ApplicationException("播放显示出错," + buf.ToString()); } } }
private Rectangle GetDisplayRect() { int err; StringBuilder buf = new StringBuilder(1000); Rectangle rectTmp = new Rectangle(); rectTmp = rect; if (deviceID > 0 && (devCaps & DevCaps.CanShowVideo) == DevCaps.CanShowVideo) { MCI_OVLY_RECT_PARMS rectp = new MCI_OVLY_RECT_PARMS(); err = mciSendCommandA(deviceID, MCI_WHERE, MCI_WAIT | MCI_OVLY_WHERE_DESTINATION, ref rectp); if (err != 0) { mciGetErrorStringA(err, buf, 1000); //throw new ApplicationException("获取视频位置和大小出错," + buf.ToString()); } else { rectTmp = rectp.rect; } } return rectTmp; }
private Size GetVideoSize() { int err; StringBuilder buf = new StringBuilder(1000); Size size = new Size(0, 0); if (deviceID > 0 && (devCaps & DevCaps.CanShowVideo) == DevCaps.CanShowVideo) { MCI_OVLY_RECT_PARMS rect = new MCI_OVLY_RECT_PARMS(); err = mciSendCommandA(deviceID, MCI_WHERE, MCI_WAIT | MCI_OVLY_WHERE_SOURCE, ref rect); if (err != 0) { mciGetErrorStringA(err, buf, 1000); //throw new ApplicationException("获取视频大小出错," + buf.ToString()); } else { size = rect.rect.Size; } } return size; }
private static extern int mciSendCommandA( Int32 wDeviceID, UInt32 uMessage, Int32 dwParam, ref MCI_OVLY_RECT_PARMS Any);