### **開始錄制**
startRecord(recordOpt: AnyChatRecordOpt, recordEvent: AnyChatRecordEvent): number
#### 接口說明:
開始錄制,錄像可以錄制單方視頻流,也可以錄制多方視頻流。
#### 返回值:
錄制操作返回的狀態碼(0代表錄制成功 )
#### 接口參數簡介 :
| 名稱 |類型 |說明 |是否必須 |
| --- | --- | --- | --- |
| recordOpt| AnyChatRecordOpt | 錄制配置類 | 是|
| recordEvent| AnyChatRecordEvent | 錄制結果回調事件 | 是|
### **開始錄制(主要用于錄像狀態檢測)**
startRecord( recordOpt: AnyChatRecordOpt, notifyEvent: AnyChatRecordNotifyEvent, recordEvent: AnyChatRecordEvent): number
#### 接口說明:
開始錄制,主要用于服務器錄制、服務器合成流錄制時,檢測錄像狀態是否正常。
#### 返回值:
錄制操作返回的狀態碼(0代表錄制成功 )
#### 接口參數簡介 :
| 名稱 |類型 |說明 |是否必須 |
| --- | --- | --- | --- |
| recordOpt| AnyChatRecordOpt | 錄制配置類 | 是|
| notifyEvent| AnyChatRecordNotifyEvent| 錄像狀態回調(針對服務器錄制、服務器合成流) | 是|
| recordEvent| AnyChatRecordEvent | 錄制結果回調事件 | 是|
AnyChatRecordOpt錄制配置類簡介:
| 名稱 |類型 |說明 |是否必須 |
| --- | --- | --- | --- |
| userID | number | 用戶id | 是 |
| recordLayoutOpt | AnyChatRecordLayoutOpt | 錄制畫面布局配置類 | 是 |
| width | number | 錄制畫面寬度 | 否 |
| height | number | 錄制畫面高度 | 否 |
| mode | number | 錄制模式<br>BRAC_RECORD_LOCAL_MODE--本地錄制(默認)<br>BRAC_RECORD_SERVER_MODE --服務器端錄制 <br> BRAC_RECORD_STREAM_MODE --服務器端合成流錄制 |否 |
| content | number | 錄制內容<br>BRAC_RECORD_DEFAULT_CONTENT--既錄音又錄像(默認) <br>BRAC_RECORD_AUDIO--只錄音 <br>BRAC_RECORD_VIDEO--只錄像 | 否 |
| fileType | number | 錄制文件類型<br>BRAC_RECORD_FILE_TYPE_MP4-- MP4(默認) <br> BRAC_RECORD_FILE_TYPE_WMV—WMV <br>BRAC_RECORD_FILE_TYPE_FLV-- FLV <br> BRAC_RECORD_FILE_TYPE_MP3-- MP3| 否|
| fileName | string | 錄制文件名 | 否 |
| category | string | 設置錄像文件保存目錄(針對服務器錄制有效) | 否 |
| localFilePath | string | 本地錄制文件存放目錄 | 否 |
| encryptionKey | string | 本地錄制文件加密的密鑰 <br>為空不加密,傳了密鑰普通加密 | 否 |
| recordClipMode| number | 裁剪模式<br>BRAC_RECORD_CLIPMODE_UNKNOW--未知模式,不需要做裁剪時使用<br>BRAC_RECORD_CLIPMODE_AUTO--以最大比例進行裁剪,然后再整體拉伸,畫面保持比例,但被裁剪畫面較大 <br> BRAC_RECORD_CLIPMODE_OVERLAP--重疊模式,只取最大有效部分,對邊緣進行裁剪 <br>BRAC_RECORD_CLIPMODE_SHRINK--縮小模式,縮小到合適的比例,不進行裁剪 <br>BRAC_RECORD_CLIPMODE_STRETCH--平鋪模式,不進行裁剪,但可能導致畫面不成比例 <br>
| statusnotify | number | 錄像狀態回調通知時間設置,默認時間為10秒(針對服務器錄制、服務器合成流錄制有效) | 否 |
| videobitrate | number| 錄制視頻碼率 單位:bps| 否 |
| audiobitrate | number| 錄制音頻碼率 單位:bps| 否 |
| fps| number | 錄像幀率| 否 |
| channels| number | 錄制音頻通道: 1 單通道, 2雙通道| 否 |
| isOpenMD5 | boolean|錄像完成回調是否返回文件MD5值| 否 |
AnyChatRecordLayoutOpt 錄制畫面布局配置類簡介:
| 返回值 | 名稱 |說明 |備注 |
| --- | --- | --- | --- |
| recordlayout| number | 視頻布局,視頻流數量,即多少個視頻畫面| 是|
| layoutstyle| number | 三路流和四路流的視頻畫面布局風格:0-并列風格(默認) ,1-畫中畫風格,2-三畫面并列風格| 否
| streamlist | ArrayList | 錄制對象AnyChatRecordStreamOpt的list集合。<br>AnyChatRecordStreamOpt對象包含三個屬性:<br>1、userID(string)錄制對象ID<br>2、streamIndex(number):錄制對象的視頻流號,移動端默認為0;<br>3、recordIndex(number):錄制對象在錄制視頻上的位置 | 否 |
AnyChatRecordNotifyEvent回調簡介:
| 返回值 | 名稱 |說明 |備注 |
| --- | --- | --- | --- |
| void | onRecordStatusDone| result(AnyChatResult): 操作狀態信息<br>JsonData(JSONObject):返回結果 | result.errCode: 0表示成功<br>其他表示錯誤代號.<br>result.msg: 錯誤描述|
AnyChatRecordEvent回調簡介:
| 返回值 | 名稱 |說明 |備注 |
| --- | --- | --- | --- |
| void | onRecordStart | result(AnyChatResult): 操作狀態信息<br>JsonData(object):返回結果 | result.errCode: 0表示成功<br>其他表示錯誤代號.<br>result.msg: 錯誤描述.<br>JsonData.userId:用戶id<br>JsonData.status:錄像狀態,值為"prepare" "start"<br>JsonData.statuscode:錄像狀態,1為prepare 2為start|
| void | onRecordDone | result(AnyChatResult): 操作狀態信息<br>JsonData(object):返回結果 | result.errCode: 0表示成功<br>其他表示錯誤代號.<br>result.msg: 錯誤描述.<br>JsonData.filePath:錄像文件地址<br>JsonData.elapse:錄像文件時長<br>JsonData.startTime:錄像開始時間<br>JsonData.endTime:錄像結束時間<br>JsonData.filemd5:錄像md5|
示例代碼
startRecord(): number {
let recordOpt: AnyChatRecordOpt = new AnyChatRecordOpt();
recordOpt.setMode(AnyChatRecordMode.BRAC_RECORD_LOCAL_MODE);// 設置為本地錄制
if (null != flePath) {
recordOpt.setLocalFilePath(flePath + "/record");// 設置本地存儲路徑
}
recordOpt.setRecordClipMode(AnyChatRecordClipMode.BRAC_RECORD_CLIPMODE_AUTO);// 設置裁剪模式
recordOpt.setUserID(-1);
recordOpt.setContent(AnyChatRecordContent.BRAC_RECORD_DEFAULT_CONTENT);// 設置既錄音又錄像
let streamlist: ArrayList<AnyChatRecordStreamOpt> = new ArrayList<AnyChatRecordStreamOpt>();
let recordEntity: AnyChatRecordStreamOpt = new AnyChatRecordStreamOpt();
recordEntity.setUserID(-1);
//設置錄制對象的視頻流號
recordEntity.setStreamindex(0);
//設置錄制對象在錄制畫面上的位置
recordEntity.setRecordindex(0);
streamlist.add(recordEntity);
let recordEntity_1: AnyChatRecordStreamOpt = new AnyChatRecordStreamOpt();
recordEntity_1.setUserID(dwTargetUserId);
//設置錄制對象的視頻流號
recordEntity_1.setStreamindex(0);
//設置錄制對象在錄制畫面上的位置
recordEntity_1.setRecordindex(1);
streamlist.add(recordEntity_1);
//設置圖片水印參數信息
recordOpt.setImagepath(picPath);
let fileName: string = "" + System.currentTimeMillis();
recordOpt.setFileName(fileName);
let anyChatRecordLayoutOpt: AnyChatRecordLayoutOpt = new AnyChatRecordLayoutOpt();
anyChatRecordLayoutOpt.setRecordlayout(2);
anyChatRecordLayoutOpt.setStreamlist(streamList);
recordOpt.setAnyChatRecordLayoutOPt(anyChatRecordLayoutOpt);
return AnyChatSDK.getInstance().startRecord(recordOpt, this);
}
- SDK介紹
- 工程準備
- 獲取AnyChatHarmonySDK
- 導入SDK文件
- 混淆加固
- 開發流程
- 初始化SDK
- 初始化及自動登錄
- 退出及釋放連接
- 版本信息查詢
- 登錄方式說明
- 服務器連接斷開通知事件
- 會話保持注冊和銷毀事件
- 房間管理
- 注冊房間管理事件
- 注銷房間管理事件
- 進入房間
- 獲取房間中的用戶列表
- 房間內的文字交流
- 退出房間
- 音視頻操作
- 音視頻互動
- 本地麥克風管理
- 打開本地麥克風
- 關閉本地麥克風
- 本地攝像頭管理
- 打開本地攝像頭
- 關閉本地攝像頭
- 切換本地攝像頭
- 接收/終止對方音頻流
- 接收遠程音頻流
- 關閉遠程音頻流
- 接收/終止對方視頻流
- 獲取遠程視頻流
- 關閉遠程視頻流
- 視頻呼叫
- 注冊視頻呼叫事件
- 客戶呼叫
- 客戶取消呼叫
- 接聽視頻呼叫
- 拒絕接聽
- 掛斷通話
- 注銷視頻呼叫事件
- 錄制(錄音錄像)
- 開始錄制
- 在錄制文件中添加圖片水印
- 在錄制文件中添加文字水印
- 在錄像中插入圖片
- 更新錄像參數
- 結束錄制
- 視頻拍照
- 抓拍
- 音視頻參數配置
- 視頻參數配置
- 音頻參數配置
- 文件傳輸
- 初始化文件模塊
- 注冊文件接收通知事件
- 注銷文件接收通知事件
- 創建文件傳輸任務
- 文件管理
- 初始化文件模塊
- 創建文件上傳任務
- 創建文件下載任務
- 透明通道
- 發送透明通道
- 注冊接收透明通道通知事件
- 注銷接收透明通道通知事件
- 智能排隊
- 初始化排隊模塊
- 營業廳操作
- 獲取營業廳列表
- 進入營業廳
- 席座服務狀態設置
- 離開營業廳
- 排隊操作
- 進入隊列
- 取消排隊
- 狀態查詢
- 查詢坐席狀態
- 查詢隊伍排隊人數
- 查詢當前排隊時間
- 查詢用戶所在隊列的當前位置
- 查詢服務區域內排隊的用戶數
- 查詢營業廳內的坐席數
- 注冊隊列狀態變化事件的監聽
- 注銷隊列狀態變化事件的監聽
- 雙錄
- 基本流程
- 自助雙錄
- 遠程雙錄
- 雙錄接口說明
- PPT資源下載
- 下載任務初始化
- 開始下載
- 取消下載
- 查詢資源下載狀態
- 查詢資源詳細信息
- 資源播放
- 媒體資源播放
- 播放
- 暫停
- 停止
- 銷毀
- 獲取當前播放信息
- 播放狀態回調接口
- 時間戳
- 水印
- 用戶相關的查詢接口
- 查詢用戶名
- 錯誤碼