### 音视频录像
AnyChat提供了[音视频录制整体解决方案](http://bbs.anychat.cn/forum.php?mod=viewthread&tid=1132),为双录过程中最重要的音视频录像功能提供了支持。
本节将讲述如何利用AnyChat SDK实现在录像中添加图片、文字水印以及在录像过程中插入图片,至于基本的录像实现方法,本文将不细述。
### 录像中添加图片、文字水印
为了让产品更好地适应互联网金融的需求,AnyChat SDK提供了在录像中添加图片水印、文字水印功能。
#### 实现方式
在录像中,lpUserStr参数为Json字符串,使用“watermark”为关键字传入一个Json对象,用来定义图片水印;使用“textoverlay”为关键字传入一个Json对象,用来定义文字水印。
```
// 图片水印Json对象的关键字定义:
"alpha":图片透明度,默认为100,可不传(不传时,将应用默认值);
"posx":图片水印在x轴方向上的起始位置(百分比,范围0~100);
"posy":图片水印在y轴方向上的起始位置(百分比,范围0~100);
"overlayimgwidth":图片的宽度,可传0,表示应用图片的原始宽度,传其他值时建议按高宽度比例来设置;
"overlayimgheight":图片的高度,可传0,表示应用图片的原始高度,传其他值时建议按高宽度比例来设置;
"imagepath":图片的路径,传入图片的本地路径(绝对路径);
// 文字水印Json对象的关键字定义:
"fontcolor":文字颜色,文字默认为白色(0xffffff,颜色值采用十六进制rgb格式),可不传(不传时,将应用默认值);
"alpha":文字的透明度,默认为100,可不传(不传时,将应用默认值);
"posx":文字水印在x轴方向上的起始位置(百分比,范围0~100);
"posy":文字水印在y轴方向上的起始位置(百分比,范围0~100);
"fontsize":文字大小,默认为23号大小,可不传(不传时,将应用默认值);
"text":文字内容,若加上[timestamp],则表示增加时间戳;
```
#### 示例代码
```
//图片水印对象
var szJsonBuf4Img = {
alpha: 50,
posx: 8,
posy: 8,
overlayimgwidth: 0,
overlayimgheight: 0,
imagepath: "d:\\LOGOB.png"
};
// 文字水印对象
var szJsonBuf4Txt = {
fontcolor: "0xffffff",
alpha: 100,
posx: 5,
posy: 5,
fontsize: 18,
text: "HelloAnyChat[timestamp]"
};
// 水印对象,可同时添加图片水印、文字水印,也可以只添加一种水印
var jsonObj = {
watermark: szJsonBuf4Img,
textoverlay: szJsonBuf4Txt
};
var flags = BRAC_RECORD_FLAGS_VIDEO + BRAC_RECORD_FLAGS_AUDIO + BRAC_RECORD_FLAGS_MIXAUDIO + BRAC_RECORD_FLAGS_MIXVIDEO + BRAC_RECORD_FLAGS_STEREO + BRAC_RECORD_FLAGS_LOCALCB;
// 开始录制
BRAC_StreamRecordCtrlEx(-1, 1, flags, 0, JSON.stringify(jsonObj));
// 结束录制
BRAC_StreamRecordCtrlEx(-1, 0, flags, 0, JSON.stringify(jsonObj));
```
### 在录像中插入图片
在录像中根据语音播报一次插入图片,可做出类似于ppt播放的效果。
#### 示例代码
```
// 配置要插入的图片位置和图片来源地址
var plJsonStr = {
recordindex: 0, // 插入的位置
filename: filename // 图片地址
}
//调用插入图像接口
BRAC_SetSDKOption(BRAC_SO_RECORD_INSERTIMAGE, plJsonStr);
```
*注意:该接口需要在录制过程中调用,每次调用只是插入一张图片,如果要做播放PPT的类似的功能,需要上层应用根据播放的进度、应用场景,定时地调用此接口进行插入。*