AVCapture
支持的硬件设备:Pro系列采集卡
例子展示的内容:
- 预览采集的视频,监听采集的音频;
- 自由选择视频采集设备,并可选择其所对应的音频设备;
- 自由切换采集参数:分辨率、帧率、色彩空间;
- 支持多路采集:同时采集一路或两路音视频并分别渲染;
- 将采集的音视频数据录制为 FLV 文件。
调用逻辑:
- 获取版本信息,初始化和枚举设备:MWGetVersion、MWCaptureInitInstance、MWRefreshDevice、MWGetChannelCount;
- 根据设备信息和接口信息筛选支持的设备:MWGetChannelInfoByIndex;
- 创建视频渲染图层并叠加到当前窗口:createPreviewLayer;
- 打开通道:MWGetDevicePath,MWOpenChannelByPath;
- 创建音频渲染器:MWAudioRenderCreate、MWAudioRenderStart;
- 启动视频采集渲染线程;
- 启动音频采集渲染线程;
- 进入主线程循环;
- 点击菜单切换音视频通道或采集参数:
- 停止音频采集渲染线程;
- 停止视频采集渲染线程;
- 销毁音频渲染器:MWAudioRenderStop、MWAudioRenderDestroy;
- 关闭通道:MWCloseChannel;
- 根据设定通道及采集参数打开通道并采集渲染:步骤4、5、6、7
- 点击关闭按钮后,退出采集,释放资源:
- 停止音频采集渲染线程;
- 停止视频采集渲染线程;
- 销毁音频渲染器:MWAudioRenderStop、MWAudioRenderDestroy;
- 关闭通道:MWCloseChannel;
- 销毁实例:MWCaptureExitInStance。
视频采集渲染线程:
- 开始采集视频:MMWStartVideoCapture;
- 创建Event:MWCreateEvent;
- 注册定时器:MWRegisterTimer;
- 设置时间计划:MWScheduleTimer;
- 等待Event:MWTryWaitEvent、MWWaitEvent、MWMultiWaitEvent;
- 采集视频数据:MWCaptureVideoFrameToVirtualAddressEx;
- 获取当前的采集状态,并释放采集卡资源:MWGetVideoCaptureStatus;
- 重复4、5、6、7,直至线程退出;
- 注销定时器:MWUnregisterTimer;
- 关闭Event:MWCloseEvent;
- 停止采集:MWStopVideoCapture;
音频采集渲染线程:
- 开始采集音频:MWStartAudioCapture;
- 创建Event:MWCreateEvent;
- 注册消息通知:MWRegisterNotify;
- 等待Event:MWTryWaitEvent、MWWaitEvent、MWMultiWaitEvent;
- 采集音频数据:MWCaptureAudioFrame;
- 渲染音频数据;
- 重复4、5、6,直至线程退出;
- 注销消息通知:MWUnregisterNotify;
- 关闭Event:MWCloseEvent;
- 停止采集:MWStopAudioCapture;
结果展示:
流程图:
