public override IntPtr GetHBitmap(string filePath, double position) { IntPtr result = IntPtr.Zero; if (_mfileObj != null) { try { _mfileObj.FileNameSet(filePath, string.Empty); _mfileObj.ObjectStart(null); try { result = GetHBitmapCore(position); } finally { _mfileObj.ObjectClose(); } } catch { result = IntPtr.Zero; } } return(result); }
private IntPtr GetMediaFileInfoInternal(string filePath, out double dblDuration) { IntPtr hBitmap = IntPtr.Zero; dblDuration = 0; if (_mfileObj != null) { try { _mfileObj.FileNameSet(filePath, string.Empty); _mfileObj.ObjectStart(null); double dblIn, dblOut; try { _mfileObj.FileInOutGet(out dblIn, out dblOut, out dblDuration); if (dblDuration > 0) { MFrame mFrame = null; _mfileObj.FileFrameGet(dblDuration / 2.0, 0.0, out mFrame); long value = 0L; mFrame.FrameVideoGetHbitmap(out value); Marshal.ReleaseComObject(mFrame); mFrame = null; hBitmap = new System.IntPtr(value); } } finally { _mfileObj.ObjectClose(); } } catch { hBitmap = IntPtr.Zero; } } return(hBitmap); }
public override TimeSpan GetDuration(string filePath) { double dblDuration = 0; if (_mfileObj != null) { _mfileObj.FileNameSet(filePath, string.Empty); _mfileObj.ObjectStart(null); double dblIn, dblOut; try { _mfileObj.FileInOutGet(out dblIn, out dblOut, out dblDuration); } finally { _mfileObj.ObjectClose(); } } return(TimeSpan.FromSeconds(dblDuration)); }