使用ltmmCapture执行捕获并将其保存为WMV文件

  1. 创建的一个实例ltmmCapture类。这是使用Win32 CoCreateInstance函数完成,如下:

C源

IltmmCapture * pCapture;CoCreateInstance (&CLSID_ltmmCapture NULL, CLSCTX_INPROC_SERVER &IID_IltmmCapture, (无效* *)&pCapture);

c++源

IltmmCapture * pCapture;CoCreateInstance (&CLSID_ltmmCapture NULL, CLSCTX_INPROC_SERVER &IID_IltmmCapture, (无效* *)&pCapture);

  1. 定义通知窗口,接收捕获状态通知:

C源

HWND hwndNotify;#定义WM_CAPTURENOTIFY (WM_USER + 1000)IltmmCapture_SetNotifyWindow (pCapture, ()hwndNotify WM_CAPTURENOTIFY);

c++源

HWND hwndNotify;#定义WM_CAPTURENOTIFY (WM_USER + 1000)pCapture - > SetNotifyWindow (()hwndNotify WM_CAPTURENOTIFY);

上面的代码指示捕获对象发送WM_CAPTURENOTIFY消息hwndNotify的窗口过程。窗口的按钮参数信息将包含通知代码。

注意:捕捉可以实现不用通知窗口,但是用户将被要求调查对象状态确定何时捕获完成。

3所示。定义一个框架窗口的视频预览:

C源

HWND hwndFrame;IltmmCapture_put_VideoWindowFrame (pCapture, ()hwndFrame);

c++源

HWND hwndFrame;pCapture - > put_VideoWindowFrame (()hwndFrame);

用户需要创建的窗口作为视频帧。ltmmCapture将这个窗口子类,因此不需要任何消息转发到ltmmCapture对象。默认情况下,ltmmCapture会自动最大化框架窗口内的视频。视频帧时将自动调整窗口大小的变化。

注:通知窗口和框架窗口的视频可以是相同的。

  1. 设置目标文件:

C源

型型;型= SysAllocString (L“c: \ \ captured.asf”);IltmmCapture_put_TargetFile (pCapture型);SysFreeString(型);

c++源

型型;::SysAllocString (L“c: \ \ captured.asf”);pCapture - > put_TargetFile(型);::SysFreeString(型);

  1. 设置视频设备:

C源

IltmmDevices *设备;IltmmCapture_get_VideoDevices (pCapture、设备);IltmmDevices_put_Selection(设备,0);IltmmDevices_Release(设备);

c++源

IltmmDevices *设备;pCapture - > get_VideoDevices(设备);设备- > put_Selection (0);设备- >释放();

  1. 设置音频设备:

C源

HIltmmDevices *设备;IltmmCapture_get_AudioDevices (pCapture、设备);IltmmDevices_put_Selection(设备,0);IltmmDevices_Release(设备);

c++源

IltmmDevices *设备;pCapture - > get_AudioDevices(设备);设备- > put_Selection (0);设备- >释放();

  1. 设置目标格式:

C源

IltmmCapture_put_TargetFormat (pCapture ltmmCapture_TargetFormat_Asf);

c++源

pCapture - > put_TargetFormat (ltmmCapture_TargetFormat_Asf);

  1. 当你想开始捕捉时,调用StartCapture函数如下:

C源

IltmmCapture_StartCapture (pCapture ltmmCapture_Mode_VideoAndAudio)

c++源

pCapture - > StartCapture (ltmmCapture_Mode_VideoAndAudio);

  1. 当你想要停止捕获,调用StopCapture函数如下:

C源

IltmmCapture_StopCapture (pCapture);

c++源

pCapture - > StopCapture ();

10。释放捕获对象(和所有活动对象)当你完成。

LEADTOOLS多188宝金博怎么下载媒体C API的帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。