AVCapture

支持的硬件设备:Pro系列采集卡

例子展示的内容

  1. 预览采集的视频,监听采集的音频;
  2. 自由选择视频采集设备,并可选择其所对应的音频设备;
  3. 自由切换采集参数:分辨率、帧率、色彩空间;
  4. 支持多路采集:同时采集一路或两路音视频并分别渲染;
  5. 将采集的音视频数据录制为 FLV 文件。

调用逻辑

  1. 获取版本信息,初始化和枚举设备:MWGetVersion、MWCaptureInitInstance、MWRefreshDevice、MWGetChannelCount;
  2. 根据设备信息和接口信息筛选支持的设备:MWGetChannelInfoByIndex;
  3. 创建视频渲染图层并叠加到当前窗口:createPreviewLayer;
  4. 打开通道:MWGetDevicePath,MWOpenChannelByPath;
  5. 创建音频渲染器:MWAudioRenderCreate、MWAudioRenderStart;
  6. 启动视频采集渲染线程;
  7. 启动音频采集渲染线程;
  8. 进入主线程循环;
  9. 点击菜单切换音视频通道或采集参数:
    1. 停止音频采集渲染线程;
    2. 停止视频采集渲染线程;
    3. 销毁音频渲染器:MWAudioRenderStop、MWAudioRenderDestroy;
    4. 关闭通道:MWCloseChannel;
    5. 根据设定通道及采集参数打开通道并采集渲染:步骤4、5、6、7
  10. 点击关闭按钮后,退出采集,释放资源:
    1. 停止音频采集渲染线程;
    2. 停止视频采集渲染线程;
    3. 销毁音频渲染器:MWAudioRenderStop、MWAudioRenderDestroy;
    4. 关闭通道:MWCloseChannel;
    5. 销毁实例:MWCaptureExitInStance。

视频采集渲染线程

  1. 开始采集视频:MMWStartVideoCapture;
  2. 创建Event:MWCreateEvent;
  3. 注册定时器:MWRegisterTimer;
  4. 设置时间计划:MWScheduleTimer;
  5. 等待Event:MWTryWaitEvent、MWWaitEvent、MWMultiWaitEvent;
  6. 采集视频数据:MWCaptureVideoFrameToVirtualAddressEx;
  7. 获取当前的采集状态,并释放采集卡资源:MWGetVideoCaptureStatus;
  8. 重复4、5、6、7,直至线程退出;
  9. 注销定时器:MWUnregisterTimer;
  10. 关闭Event:MWCloseEvent;
  11. 停止采集:MWStopVideoCapture;

音频采集渲染线程

  1. 开始采集音频:MWStartAudioCapture;
  2. 创建Event:MWCreateEvent;
  3. 注册消息通知:MWRegisterNotify;
  4. 等待Event:MWTryWaitEvent、MWWaitEvent、MWMultiWaitEvent;
  5. 采集音频数据:MWCaptureAudioFrame;
  6. 渲染音频数据;
  7. 重复4、5、6,直至线程退出;
  8. 注销消息通知:MWUnregisterNotify;
  9. 关闭Event:MWCloseEvent;
  10. 停止采集:MWStopAudioCapture;

结果展示结果展示1

结果展示2

结果展示3

结果展示4

流程图AVCapture流程图

与“”相关结果约

    找不到与“”相关的结果