视频截图上传
takeSnapshot
获取视频截图。
详情
该方法用于对指定用户的视频流进行截图,生成一张 JPG 格式的图片,并保存至指定的路径。
该方法是异步操作,调用返回时 SDK 并没有真正获取截图。成功调用该方法后,SDK 会触发 onSnapshotTaken 回调报告截图是否成功和获取截图的详情。
注意
- 该方法需要在加入频道后调用。
- 该方法用于本地视频截图时,是对 ChannelMediaOptions 中指定发布的视频流进行截图。
- 如果用户的视频经过前处理,例如,添加了水印或美颜,生成的截图会包含前处理效果。
参数
- uid
- 用户 ID。如果要对本地用户的视频截图,则设为 0。
- filePath
- 截图的本地保存路径,需精确到文件名及格式, 例如: 请确保目录存在且可写。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
onSnapshotTaken
视频截图结果回调。
ArkTS
onSnapshotTaken?:(uid:number, filePath:string , width:number, height:number, errCode:number) => void
详情
成功调用 takeSnapshot 后,SDK 触发该回调报告截图是否成功和获取截图的详情。
参数
- uid
- 用户 ID。如果 uid 为 0,表示本地用户。
- filePath
- 截图的本地保存路径。
- width
- 图片宽度(px)。
- height
- 图片高度(px)。
- errCode
- 截图成功的提示或失败的原因。
- 0:截图成功。
- < 0: 截图失败。
- -1:写入文件失败或 JPEG 编码失败。
- -2:takeSnapshot 方法调用后 1 秒内没有收到指定用户的视频帧。可能的原因有:本地采集停止、远端停止发布或者视频数据处理堵塞。
- -3:takeSnapshot 方法调用过于频繁。