设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 5108|回复: 1
打印 上一主题 下一主题

开放录像服务器SDK接口(AnyChat Record Server SDK)

[复制链接]

249

主题

2967

帖子

9075

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9075
跳转到指定楼层
楼主
发表于 2014-8-1 14:00:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
亲,非常高兴的告诉您,从AnyChat r4115版本开始,我们开放了录像服务器SDK接口(AnyChat Record Server SDK)。

录像服务器SDK支持的平台包括Windows、Linux(x86、x64),支持的开发语言有C++、Java,示例代码位于SDK的src\recordserver目录下。
AnyChat Record Server SDK是服务器端SDK,用于上层应用实现特定的服务器录制功能。通过SDK接口可以获取到每个用户的视频、语音、通信数据,由上层应用自己写入文件。

录像服务器SDK的工作原理是:

一、录像服务器启动:调用API:BRRS_InitSDK(0);之后,录像服务器主动与核心服务器建立连接,连接成功之后,将会触发录像服务器的回调事件:BRRS_OnServerAppMessage_CallBack;录像服务器读当前目录下的配置文件AnyChatRecordServer.ini,配置文件会指明核心服务器的IP地址、端口信息;录像服务器与核心服务器连接成功之后,业务服务器也将收到相关的事件通知;

二、录像任务的下达:
1、客户端下达录像指令:调用API接口:BRAC_StreamRecordCtrl(dwUserId, TRUE,dwFlags, 0),其中dwFlags参数增加标志:BRAC_RECORD_FLAGS_SERVER;
2、或是业务服务器下达录像指令:调用API接口:BRAS_StreamRecordCtrl(dwUserId, TRUE, 0, 0);

三、录像任务的执行:
1、开始录像事件:当录像服务器收到录像任务后,将产生一个回调事件:BRRS_OnRecordStart_CallBack(userid),通知上层应用录像开始,上层应用可以创建一个文件用于录像;
2、录像数据事件:当录像服务器收到语音、视频、通信数据之后,将重复的产生回调事件:BRRS_OnRecordBuffer_CallBack(userid, buf),通知上层有录像数据,上层应用可以将这些数据写入到文件中;

四、录像任务的停止:
1、客户端下达停止指令:调用API接口:BRAC_StreamRecordCtrl(dwUserId, FALSE, 0, 0),
2、或是业务服务器下达录像指令:调用API接口:BRAS_StreamRecordCtrl(dwUserId, FALSE, 0, 0);


五、事件回调:
1、录像停止事件:当录像服务器收到停止指令之后,将在录像服务器上产生一个回调事件:BRRS_OnRecordFinish_CallBack(userid),上层应用可以关闭文件,并将录像文件名通过事件参数反馈给录像服务器,录像服务器会将相关信息通知到业务服务器;
2、录像任务事件:当业务服务器收到录像服务器返回的录像任务相关信息之后,将在业务服务器上产生一个回调事件:BRAS_OnServerRecord_CallBack(userid, lpRecordFileName),业务服务器可以将相关的录像记录进行保存等操作;

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

249

主题

2967

帖子

9075

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9075
沙发
 楼主| 发表于 2014-8-1 16:27:47 | 只看该作者

录像服务器SDK接口(AnyChat Record Server SDK)C++版本


  1. #define BRRS_API extern "C"

  2. #define BRRS_SERVERAPPMSG_CONNECTED                1                ///< 连接AnyChat服务器成功
  3. #define BRRS_SERVERAPPMSG_DISCONNECT               2                ///< 与AnyChat服务器断开连接

  4. // 查询信息类型定义(API:BRRS_QueryUserInfo 传入参数)
  5. #define BRRS_USERINFO_TYPE_NICKNAME                    1                ///< 用户名
  6. #define BRRS_USERINFO_TYPE_VCODEC                      10               ///< 视频编码器
  7. #define BRRS_USERINFO_TYPE_WIDTH                        11               ///< 视频宽度
  8. #define BRRS_USERINFO_TYPE_HEIGHT                       12                ///< 视频高度
  9. #define BRRS_USERINFO_TYPE_FRAMERATE                13                ///< 视频帧率
  10. #define BRRS_USERINFO_TYPE_ACODEC                     20                ///< 音频编码器
  11. #define BRRS_USERINFO_TYPE_SAMPLERATE              21                ///< 音频采样率
  12. #define BRRS_USERINFO_TYPE_CHANNELS                  22                ///< 音频采样通道数
  13. #define BRRS_USERINFO_TYPE_SAMPLEBITS               23                ///< 音频采样位数

  14. // 参数设置类型定义(API:BRRS_SetSDKOption 传入参数)
  15. #define BRRS_SO_USESERVERTIMESTAMP                     1                ///< 使用服务器时间戳

  16. // 数据类型标志(回调函数:OnAnyChatRecordBufferCallBack 参数)
  17. #define BRRS_RECORD_FLAGS_AUDIO                        0x01            ///< 音频数据
  18. #define BRRS_RECORD_FLAGS_VIDEO                        0x02            ///< 音频数据
  19. #define BRRS_RECORD_FLAGS_BUFFER                      0x04            ///< 透明通道缓冲区数据
  20. #define BRRS_RECORD_FLAGS_BUFFEREX                  0x08            ///< 透明通道扩展缓冲区
  21. #define BRRS_RECORD_FLAGS_KEYFRAME                 0x10            ///< 视频关键帧
  22. #define BRRS_RECORD_FLAGS_SILENCE                    0x20            ///< 音频静音帧


  23. // 服务器应用程序消息回调函数定义
  24. typedef void (CALLBACK* BRRS_OnServerAppMessage_CallBack)(DWORD dwMsg, DWORD wParam, DWORD lParam, LPVOID lpUserValue);
  25. // 开始录像事件回调函数定义
  26. typedef DWORD (CALLBACK* BRRS_OnRecordStart_CallBack)(DWORD dwUserId, LPVOID lpUserValue);
  27. // 录像数据事件回调函数定义
  28. typedef DWORD (CALLBACK* BRRS_OnRecordBuffer_CallBack)(DWORD dwUserId, CHAR* lpBuf, DWORD dwSize, DWORD dwTimeStamp, DWORD dwFlags, LPVOID lpUserValue);
  29. // 结束录像事件回调函数定义
  30. typedef DWORD (CALLBACK* BRRS_OnRecordFinish_CallBack)(DWORD dwUserId, CHAR* lpFileName, DWORD dwSize, DWORD* lpRecordSeconds, LPVOID lpUserValue);

  31. /**
  32. *  API 方法定义
  33. */
  34. // 设置服务器应用程序消息回调函数
  35. BRRS_API DWORD BRRS_SetOnServerAppMessageCallBack(BRRS_OnServerAppMessage_CallBack lpFunction, LPVOID lpUserValue=NULL);
  36. // 设置开始录像事件回调函数
  37. BRRS_API DWORD BRRS_SetOnRecordStartCallBack(BRRS_OnRecordStart_CallBack lpFunction, LPVOID lpUserValue=NULL);
  38. // 设置录像数据事件回调函数
  39. BRRS_API DWORD BRRS_SetOnRecordBufferCallBack(BRRS_OnRecordBuffer_CallBack lpFunction, LPVOID lpUserValue=NULL);
  40. // 设置录像完成事件回调函数
  41. BRRS_API DWORD BRRS_SetOnRecordFinishCallBack(BRRS_OnRecordFinish_CallBack lpFunction, LPVOID lpUserValue=NULL);

  42. // 获取SDK版本信息
  43. BRRS_API DWORD BRRS_GetSDKVersion(DWORD& dwMainVer, DWORD& dwSubVer, TCHAR* lpCompileTime, DWORD dwBufLen);
  44. // 初始化SDK
  45. BRRS_API DWORD BRRS_InitSDK(DWORD dwReserved);
  46. // 释放资源
  47. BRRS_API DWORD BRRS_Release(void);


  48. // 查询用户信息
  49. BRRS_API DWORD BRRS_QueryUserInfo(DWORD dwUserId, DWORD dwInfoName, CHAR* lpValue, DWORD dwSize);
  50. // SDK内核参数设置
  51. BRRS_API DWORD BRRS_SetSDKOption(DWORD optname, CHAR* optval, DWORD optlen);

复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-4-20 23:11 , Processed in 0.123299 second(s), 25 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表