AnyChat技术支持论坛

标题: 新增接口实现多路录像任务 [打印本页]

作者: chenr    时间: 2018-9-17 20:37
标题: 新增接口实现多路录像任务
本帖最后由 chenr 于 2018-9-18 18:14 编辑

AnyChat支持多路录像任务能力,即在BRAC_StreamRecordCtrlEx发起录像后,通过调用BRAC_SDKControl接口再发起新的本地录像任务,满足音视频多路录像任务的应用场景。

一、接口说明
1.1 新增录像接口
  1. var ANYCHAT_SDKCTRL_RECORD = 5; //新增控制码

  2. var jsonObj = {
  3.       "taskguid":"B2078329-FDB9-2746-87B1-A44DF6720612",
  4.       "flags": ANYCHAT_RECORD_FLAGS_VIDEO + ANYCHAT_RECORD_FLAGS_AUDIO,
  5.       "userid":-1,
  6.       "start":1,
  7.       "userstr":{"filename":"localfile_180828"}
  8. };

  9. BRAC_SDKControl(ANYCHAT_SDKCTRL_RECORD,JSON.stringify(jsonObj));
复制代码
参数说明:
1)新增加的SDK控制码 ANYCHAT_SDKCTRL_RECORD
2)录像参数为JSON字符串,各个key值说明如下
      taskguid:录像任务的唯一标识,请自行产生唯一GUID传入,保证每个录像任务的唯一性
      userid:  发起录像用户userid
      flags:录像标记位ANYCHAT_RECORD_FLAGS_XXX,如 ANYCHAT_RECORD_FLAGS_VIDEO 等
      start:1 表示开始录像, 0 表示停止录像
      userstr:自定义字符串,可设置录制文件名,也可为空

1.2 录像完成事件回调
  1. // 收到录像或拍照完成事件
  2. function OnAnyChatRecordSnapShotEx(dwUserId, lpFileName, dwElapse, dwFlags, dwParam, lpUserStr)
复制代码
回调说明:
客户端调用BRAC_SDKControl停止录制任务,会触发录像完成事件。


二、示例代码
  1. function sdkcontrol_record_start(){
  2.      //BRAC_StreamRecordCtrl录像功能
  3.      var dwFlags = ANYCHAT_RECORD_FLAGS_VIDEO + ANYCHAT_RECORD_FLAGS_AUDIO;
  4.      BRAC_SetSDKOption(BRAC_SO_RECORD_TMPDIR,"d:\\record\\local");
  5.      BRAC_StreamRecordCtrl(-1,1,dwFlags, 0);
  6.    
  7.      BRAC_SetSDKOption(BRAC_SO_RECORD_TMPDIR,"d:\\record\\SDKControl本地录制视频");
  8.      var FILE_TYPE = 0; //录制为MP4格式
  9.      BRAC_SetSDKOption(BRAC_SO_RECORD_FILETYPE, FILE_TYPE);

  10.      var jsonObj = {
  11.            "taskguid":"B2078329-FDB9-2746-87B1-A44DF6720612",
  12.            "flags": ANYCHAT_RECORD_FLAGS_VIDEO + ANYCHAT_RECORD_FLAGS_AUDIO,
  13.            "userid":-1,
  14.            "start":1,
  15.            "userstr":{"filename":"anychatvideo.mp4"}
  16.       };
  17.      //BRAC_SDKControl录像功能
  18.      var sdk_ret = BRAC_SDKControl(ANYCHAT_SDKCTRL_RECORD,JSON.stringify(jsonObj));
  19.      var jsonParse = JSON.parse(sdk_ret);
  20.      if (jsonParse.errorcode != 0){
  21.             console.log("录制失败"+"errorcode: "+jsonParse.errorcode);
  22.      }
  23. }
复制代码
  1. //录制视频-结束
  2. function sdkcontrol_record_stop(){
  3.      var dwFlags = ANYCHAT_RECORD_FLAGS_VIDEO + ANYCHAT_RECORD_FLAGS_AUDIO;
  4.      BRAC_StreamRecordCtrl(-1,0,dwFlags, 0);
  5.         
  6.      var jsonObj = {
  7.           "taskguid":"B2078329-FDB9-2746-87B1-A44DF6720612",
  8.           "flags": ANYCHAT_RECORD_FLAGS_VIDEO + ANYCHAT_RECORD_FLAGS_AUDIO,
  9.           "userid":-1,
  10.           "start":0,
  11.           "userstr":{"filename":"anychatvideo.mp4"}
  12.      };
  13.         
  14.      BRAC_SDKControl(ANYCHAT_SDKCTRL_RECORD,JSON.stringify(jsonObj));
  15. }
复制代码

作者: admin    时间: 2019-2-25 09:19
谢谢,正是我需要的.




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3