### **開始錄制**
- (void)startRecord:(AnyChatRecordOpt *)opt;
接口說明:
開始錄制,錄像可以錄制單方視頻流,也可以錄制多方視頻流。
初始化錄制配置參數 (開始錄制時有些參數是必傳)
AnyChatRecordOpt *recordOpt = [[AnyChatRecordOpt alloc]init];
self.recordOpt = recordOpt;
接口參數簡介:
| 名稱 |類型 |說明 |是否必須 |
| --- | --- | --- | --- |
| recordOpt| AnyChatRecordOpt | 錄制配置類 | 是|
AnyChatRecordOpt錄制配置類簡介:
| 名稱 |類型 |說明 |是否必須 |
| --- | --- | --- | --- |
| userID | NSString | 用戶id | 是 |
| recordLayoutOpt | AnyChatRecordLayoutOpt | 錄制畫面布局配置類 | 是 |
| width | CGFloat | 錄制畫面寬度(默認640) | 否 |BRAC_RECORD_STREAM_MODE
| height | CGFloat | 錄制畫面高度 (默認480) | 否 |
| videobitrate | int | 視頻碼率 | 否 |
| audiobitrate | int | 音頻碼率 | 否 |
| fps | int | 錄像幀率 | 否 |
| channels | int | 音頻通道 1 單通道 或者 2 雙通道 | 否 |
| samplepersec | int | 音頻采樣率 48000 、 16000 等 | 否 |
| mode | BRAC_RecordMode | 錄制模式<br>BRAC_RECORD_LOCAL_MODE --本地錄制(默認)<br>BRAC_RECORD_SERVER_MODE --服務器端錄制<br> BRAC_RECORD_STREAM_MODE --服務器端合成流錄制 BRAC_RECORD_LOCAL_STREAM_MODE --本地合成流錄制|否 |
| content | BRAC_RecordContent | 錄制內容<br>BRAC_RECORD_DEFAULT_CONTENT--既錄音又錄像(默認)<br>BRAC_RECORD_AUDIO--只錄音<br>BRAC_RECORD_VIDEO--只錄像 | 否 |
| fileType | BRAC_RecordFileType | 錄制文件類型<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 | NSString | 錄制文件名 | 否 |
| category | NSString | 錄像文件保存目錄(使用服務器錄制或服務器合成流錄制有效) | 否 |
| encryptionKey | NSString | 加密錄像視頻文件的加密秘鑰,值為空表示不加密 | 否 |
| localFilePath | NSString | 本地錄制文件存放目錄 | 否 |
| recordClipMode| BRAC_RecordClipMode | 裁剪模式:<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--平鋪模式 | 否 |
| picOpt | AnyChatPicMarkOpt | 在錄像文件中添加圖片水印 | 否 |
| textOpt | AnyChatTextMarkOpt | 在錄像文件中添加文字水印| 否 |
| strJson | string | 錄像自定義參數 | 否 |
| statusnotify | number | 錄像狀態回調通知時間設置,默認時間為10秒(針對服務器錄制和服務器合成流錄制有效) | 否 |
AnyChatRecordLayoutOpt 錄制畫面布局配置類簡介:
| 名稱 |類型 |說明 |是否必須 |
| --- | --- | --- | --- |
| recordlayout| int | 視頻布局,視頻流數量,即多少個視頻畫面| 是|
| layoutstyle| int | 兩路流、三路流和四路流的視頻畫面布局風格:0-并列風格(默認) ,1-畫中畫風格,2-三畫面并列風格| 否|
| streamlist | NSArray | 錄制對象AnyChatRecordStreamOpt的NSArray集合。<br>AnyChatRecordStreamOpt對象包含三個屬性:<br>1、userID(String)錄制對象ID<br>2、streamIndex(int):錄制對象的視頻流號,移動端默認為0;<br>3、recordIndex(int):錄制對象在錄制視頻上的位置 | 否 |
**回調說明**
| 名稱 | 參數(類型):說明 | 接口說明 | 備注 |
| --- | --- | --- | --- |
| RecordStartCallback | result(執行結果)<br> data(返回數據) | 錄像開始回調 |result.code: 0表示成功,其他表示錯誤代號<br>result.msg: 結果描述;<br> data.userid: 發起錄制的用戶ID<br>data.status: 錄像狀態,值為"prepare" "start";<br>data.statuscode: 錄像狀態,1為prepare 2為start;<br> |
| RecordStatusnotifyBlock | data(返回數據) | 錄像心跳回調 (對服務器錄制以及服務器合成流錄制有效) |data.userid: 發起錄制的用戶ID<br>data.errorcode: 錯誤碼 |
**示例代碼**
~~~
// 開始錄制
-(void)startRecordUserId:(int)userId recordlayout:(int)recordlayout recordMode:(BRAC_RecordMode)mode {
//錄制配置參數
AnyChatRecordOpt *recordOpt = [[AnyChatRecordOpt alloc]init];
self.recordOpt = recordOpt;
self.recordOpt.recordClipMode = BRAC_RECORD_CLIPMODE_SHRINK;
self.recordOpt.content = BRAC_RECORD_DEFAULT_CONTENT; //錄制內容(既錄音又錄像)
NSMutableArray *layoutArr = [NSMutableArray array];
switch (mode) {
case BRAC_RECORD_LOCAL_MODE: //本地錄制(錄制自己或者錄制對方)
{
AnyChatRecordStreamOpt *streamOpt = [AnyChatRecordStreamOpt new];
streamOpt.userId = userId;
//視頻流編號和錄制畫面編號(視頻流默認為0)
streamOpt.streamindex = 0;
streamOpt.recordindex = 0;
[layoutArr addObject:streamOpt];
break;
}
case BRAC_RECORD_LOCAL_STREAM_MODE://本地合成錄制
{
//對方錄制流參數
AnyChatRecordStreamOpt *iRemoteRecordStreamOpt = [[AnyChatRecordStreamOpt alloc]init];
iRemoteRecordStreamOpt.userId = userId;
iRemoteRecordStreamOpt.streamindex = 0; //視頻流編號(客戶端同時只能開啟一個攝像頭 所以默認為0)
iRemoteRecordStreamOpt.recordindex = 0; //錄制畫面編號(一個畫面對應一個編號)
//自己錄制流參數
AnyChatRecordStreamOpt *iSelfRecordStreamOpt = [[AnyChatRecordStreamOpt alloc]init];
int myUserId = [AnyChatSDK getInstance].theMyUserID;
iSelfRecordStreamOpt.userId = myUserId;
iSelfRecordStreamOpt.streamindex = 0; //視頻流編號(客戶端同時只能開啟一個攝像頭 所以默認為0)
iSelfRecordStreamOpt.recordindex = 1; //錄制畫面編號(一個畫面對應一個編號)
[layoutArr addObject:iRemoteRecordStreamOpt];
[layoutArr addObject:iSelfRecordStreamOpt];
break;
}
default:
break;
}
self.recordOpt.recordLayoutOpt = [[AnyChatRecordLayoutOpt alloc] init];
self.recordOpt.recordLayoutOpt.streamlist = layoutArr;
self.recordOpt.recordLayoutOpt.recordlayout = recordlayout; //視頻布局,視頻流數量,即多少個視頻畫面
//錄制模式
self.recordOpt.mode = mode;
self.recordOpt.userId = userId;
//開始錄制
[[AnyChatSDK getInstance] startRecord:self.recordOpt];
~~~
- SDK介紹
- 工程準備
- 獲取SDK
- 導入SDK
- 開發流程
- 初始化SDK
- 初始化及自動登錄
- 退出及釋放連接
- 登錄方式說明
- 版本信息查詢
- 房間管理
- 初始化
- 進入房間
- 獲取房間中的用戶列表
- 房間內的文字交流
- 退出房間
- 音視頻操作
- 設備初始化
- 注冊設備初始化事件
- 音視頻互動
- 本地麥克風管理
- 打開本地麥克風
- 關閉本地麥克風
- 本地攝像頭管理
- 打開本地攝像頭
- 關閉本地攝像頭
- 切換本地攝像頭
- 接收/終止對方音頻流
- 接收遠程音頻流
- 關閉遠程音頻流
- 接收/終止對方視頻流
- 獲取遠程視頻流
- 關閉遠程視頻流
- 視頻呼叫
- 初始化
- 呼叫用戶
- 取消呼叫
- 接受呼叫
- 拒絕接聽
- 掛斷通話
- 錄制(錄音錄像)
- 開始錄制
- 結束錄制
- 錄像中插入圖片
- 錄制中插入圖片水印
- 錄像中插入文字水印
- 更新錄制參數
- 非嚴格模式錄制
- 異常任務錄像終止
- 混音錄制
- 視頻拍照
- 抓拍
- 音視頻參數設置
- 視頻參數設置
- 音頻參數設置
- 噪音檢測
- 設置音頻工具箱
- 獲取噪音大小
- 麥克風靈敏度獲取與設置
- 文件傳輸
- 初始化文件模塊
- 文件傳輸
- 文件管理
- 初始化文件模塊
- 文件下載
- 文件上傳
- 透明通道
- 發送透明通道
- 智能排隊
- 初始化排隊模塊
- 營業廳操作
- 獲取營業廳列表
- 進入營業廳
- 離開營業廳
- 排隊操作
- 進入排隊
- 取消排隊
- 席座服務狀態設置
- 狀態查詢
- 查詢席座狀態
- 查詢隊伍排隊人數
- 查詢當前排隊時間
- 查詢隊列排隊用戶的詳細信息
- 桌面共享與屏幕錄制
- 桌面共享
- 顯示用戶共享桌面
- 手寫簽名
- 雙錄
- 基本流程
- 自助雙錄
- 遠程雙錄
- 雙錄接口說明
- PPT資源下載
- 下載任務初始化
- 開始下載
- 取消下載
- 下載進度回調
- 下載完成回調
- 查詢資源下載狀態
- 查詢資源詳情信息
- 資源播放
- PPT資源播放
- 播放
- 暫停
- 停止
- 獲取當前播放信息
- 資源切換到下一幀
- 資源切換到上一幀
- 跳轉到某個時間點播放
- 播放狀態回調接口
- 播放翻頁回調接口
- 媒體資源播放
- 播放
- 暫停
- 停止
- 獲取當前播放信息
- 播放狀態回調接口
- 時間戳
- 水印
- 用戶相關的查詢接口
- 查詢用戶名
- 網絡狀態檢測
- 設置實時網絡監測模塊
- 查詢指定用戶網絡詳情
- 房間內網絡狀態監聽
- 音視頻通話網絡質量查詢
- 遠程視頻流加載事件
- AI功能模塊
- AI降噪
- 錯誤碼