音视频通话

拍照

功能介绍

本节介绍如何基于视频 UI 组件当前正在显示的画面进行拍照截帧,将图像保存为文件或转为 Base64 供业务使用。

注意:

须在成功进入房间后,方可拍照;须先通过 订阅并显示视频 创建组件并完成 setVideo,且组件上已有画面(isPicEmpty() 返回 1 表示非空)。

1. 保存为图片文件

对已显示视频画面的视频 UI 组件调用 savePic(fileName),SDK 将当前帧编码为图片并触发浏览器下载;保存路径由浏览器/用户决定,无法指定目录。

  • 支持常见扩展名:jpgjpegpng等;
  • 组件无画面或视频流未激活时调用,SDK 无响应。

示例:

var videoUI = CRVideo_CreatVideoObj();
document.getElementById('videoBox').appendChild(videoUI.handler());
videoUI.setVideo(remoteUID);

// 等待画面就绪后拍照(isPicEmpty 返回 1 表示有画面)
if (videoUI.isPicEmpty() === 1) {
    videoUI.savePic('snapshot.png');
}

相关 API 请参考:

2. 获取 Base64 数据

调用 savePicToBase64(format) 可获取当前帧的 Base64 字符串,便于上传或自定义保存。format 可选,缺省为 png

  • 返回值带 MIME 前缀,例如 data:image/png;base64,...;若仅需纯数据,可自行去掉 data:image/png;base64, 前缀;
  • 组件无画面时调用,SDK 无响应。

示例:

if (videoUI.isPicEmpty() === 1) {
    var base64 = videoUI.savePicToBase64('png');
}

相关 API 请参考: