### 音視頻錄像
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的類似的功能,需要上層應用根據播放的進度、應用場景,定時地調用此接口進行插入。*