多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
录制接口:BRAC_API DWORD BRAC_StreamRecordCtrl(DWORD dwUserId, BOOL bStartRecord, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr); API第一个参数表示录制对象,指录制某一个用户的音视频 开始录制以及停止录制均调用同一个API接口(如客户端为:BRAC_StreamRecordCtrlEx),通过第二个参数(bStartRecord)来控制,当bStartRecord=TRUE(1)时,表示开始录制,当bStartRecord=FALSE(0)时,表示停止录制。 对于合成录制,只需要通过第三个参数(dwFlags)加入特定的标志即可实现。标志位如下: 录像功能标志定义(API:BRAC_StreamRecordCtrl 传入参数) var BRAC_RECORD_FLAGS_VIDEO = 0x00000001; // 录制视频 var BRAC_RECORD_FLAGS_AUDIO = 0x00000002; // 录制音频 var BRAC_RECORD_FLAGS_SERVER = 0x00000004; // 服务器端录制 var BRAC_RECORD_FLAGS_MIXAUDIO = 0x00000010; // 录制音频时,将其它人的声音混音后录制 var BRAC_RECORD_FLAGS_MIXVIDEO = 0x00000020; // 录制视频时,将其它人的视频迭加后录制 var BRAC_RECORD_FLAGS_ABREAST = 0x00000100; // 录制视频时,将其它人的视频并列录制 var BRAC_RECORD_FLAGS_STEREO = 0x00000200; // 录制音频时,将其它人的声音混合为立体声后录制 var BRAC_RECORD_FLAGS_SNAPSHOT = 0x00000400; // 拍照 var BRAC_RECORD_FLAGS_LOCALCB = 0x00000800; // 触发本地回调 var BRAC_RECORD_FLAGS_STREAM = 0x00001000; // 对视频流进行录制(效率高,但可能存在视频方向旋转的问题) var BRAC_RECORD_FLAGS_USERFILENAME= 0x00002000; // 用户自定义文件名 当调用API开始录制时,相当于下达了一个录制任务,AnyChat内核将开始录制,可以在客户端调用API(BRAC_QueryUserState)来查询录制状态;通过第三个参数(dwFlags)可控制录制行为:是在客户端录制,还是在服务器录制;是录制音频,还是音视频一同录制;是录制单个用户,还是通话双方合成录制等,具体应用可参考后续的“录制功能示例”部分。 当调用API停止录制时,AnyChat内核会结束录制任务,同时触发上层应用的回调事件(如客户端为:BRAC_RecordSnapShotEx_CallBack),在回调事件中,将录制文件名(含路径)、录制时长、用户自定义参数等信息返回给上层应用。 AnyChat内核提供了两个自定义参数,一个是整形(dwParam),一个是字符串类型(lpUserStr),在开始录制(或结束录制)时通过API接口传入,如果开始录制、结束录制均为传入,则以结束录制时的值为准,在录制完成回调事件中返回给上层应用,如可以通过字符串类型自定义参数来传输一个上层应用的业务流水号,则可以实现在回调事件中将录制的文件名与业务流水号进行关联,保存在数据库中等功能。