跳转至

接口详解

RongRTCEventListener

通知回调接口类:

class RongRTCEventListener
{
public:
	virtual void NotifyDisconnectWithRoom() = 0;
	virtual void NotifyConnectionStatusChanged(RongRTCConnectionStatus out_status) = 0;
	virtual void NotifyReceivedMessage(const char* out_object_name, const char* out_content) = 0;
	virtual void NotifyRemoteUserJoinedRoom(const char* out_user_id) = 0;
	virtual void NotifyRemoteUserLeftRoom(const char* out_user_id) = 0;
	virtual void NotifyRemoteUserOffLine(const char* out_user_id) = 0;
	virtual void NotifyRemoteUserPublishedStreams(const char* out_user_streams_json) = 0;
	virtual void NotifyRemoteUserUnPublishedStreams(const char* out_user_streams_json) = 0;
	virtual void NotifyRemoteUserChangedStreamsState(const char* out_user_streams_json) = 0;
	virtual void NotifyRenderVideoData(const char* out_stream_id, RongRTCVideoFrame out_video_frame) = 0;
	virtual void NotifyPreprocessingDefaultVideoData(RongRTCVideoFrame out_video_frame) = 0;
	virtual void NotifySendRecvStatisticsData(const char* out_statistics_data_json) = 0;
};

说明: 通知回调接口类, SDK通过该虚接口类进行通知, 调用者需要继承该接口类, 实现各个通知函数

NotifyDisconnectWithRoom

通知名称: NotifyDisconnectWithRoom

说明: 通知用户心跳超时与房间失去连接

NotifyConnectionStatusChanged

通知名称: NotifyConnectionStatusChanged

说明: 通知与信令服务器连接状态变化

参数名称 类型 说明 最低版本
out_status RongRTCConnectionStatus 与信令服务器连接状态, 详见 RongRTCConnectionStatus 定义 3.0.0
NotifyReceivedMessage

通知名称: NotifyReceivedMessage

说明: 通知收到房间内消息

参数名称 类型 说明 最低版本
out_object_name const char* 消息名字 3.0.0
out_content const char* 消息内容 3.0.0
NotifyRemoteUserJoinedRoom

通知名称: NotifyRemoteUserJoinedRoom

说明: 通知远端用户加入房间

参数名称 类型 说明 最低版本
out_user_id const char* 远端用户 ID 3.0.0
NotifyRemoteUserLeftRoom

通知名称: NotifyRemoteUserLeftRoom

说明: 通知远端用户离开房间

参数名称 类型 说明 最低版本
out_user_id const char* 远端用户 ID 3.0.0
NotifyRemoteUserOffLine

通知名称: NotifyRemoteUserOffLine

说明: 通知远端用户离线

参数名称 类型 说明 最低版本
out_user_id const char* 远端用户 ID 3.0.0
NotifyRemoteUserPublishedStreams

通知名称: NotifyRemoteUserPublishedStreams

说明: 通知用户有远端用户发布流

参数名称 类型 说明 最低版本
out_user_streams_json const char* 远端用户发布的流信息, 格式为 [{"userid":[{"mediaType":***, "msid":"***", "state":***, "tag": "***","features":["simulcast"]}]}],userid 为用户 ID, mediaType 为流类型, 0是音频流, 1是视频流, state 为流状态, 0代表关闭, 1代表开启, tag 为流标签, features 为流特征,如果包含 simulcast 则代表支持大小流, 如下示例 3.0.0

示例:

out_user_streams_json为
[
  {
    "11223344":[
      {
        "mediaType":0,
        "msid":"11223344_RongCloudRTC",
        "state":1,
        "tag":"RongCloudRTC"
      },
      {
        "mediaType":1,
        "msid":"11223344_RongCloudRTC",
        "state":0,
        "tag":"RongCloudRTC",
        "features":["simulcast"]
      }
    ]
  }
]
表示 11223344 用户发布了流标签为 RongCloudRTC, 状态为开启状态的音频流和流标签为 RongCloudRTC, 状态为关闭状态, 支持大小流的视频流
NotifyRemoteUserUnPublishedStreams

通知名称: NotifyRemoteUserUnPublishedStreams

说明: 通知用户有远端用户取消发布流

参数名称 类型 说明 最低版本
out_user_streams_json const char* 远端用户取消发布的流信息, 格式为 [{"userid":[{"mediaType":***, "msid":"***", "tag": "***"}]}], userid 为用户 ID, mediaType 为流类型, 0是音频流, 1是视频流, msid 为流 ID, tag 为流标签, 如下示例 3.0.0

示例:

out_user_streams_json为
[
  {
    "11223344": [
      {
         "mediaType":0,
         "msid":"11223344_RongCloudRTC",
         "tag":"RongCloudRTC"
      }
    ]
  }
]
表示 11223344 用户取消发布了流标签为 RongCloudRTC, 流 ID 为 11223344_RongCloudRTC 的音频流
NotifyRemoteUserChangedStreamsState

通知名称: NotifyRemoteUserChangedStreamsState

说明: 通知用户有远端用户变更流状态

参数名称 类型 说明 最低版本
out_user_streams_json const char* 远端用户变更流状态的信息, 格式为 [{"userid":[{"mediaType":***, "msid":"***", "tag": "***", "state": ***}]}], userid 为用户 ID, mediaType 为流类型, 0是音频流, 1是视频流, tag 为流标签, state 为当前流状态, 0代表关闭, 1代表开启, 如下示例 3.0.0

示例:

out_user_streams_json为
[
  {
    "11223344":[
      {
        "mediaType":0,
        "msid":"11223344_RongCloudRTC",
        "tag":"RongCloudRTC",
        "state":0
      }
    ]
  } 
]
代表 11223344 用户关闭了流标签为 RongCloudRTC 的音频流
NotifyRenderVideoData

通知名称: NotifyRenderVideoData

说明: 通知用户视频流数据, 包括本地默认视频流和远端视频流数据

参数名称 类型 说明 最低版本
out_stream_id const char* 流ID 3.0.0
out_video_frame RongRTCVideoFrame 视频一帧数据, 详见 RongRTCVideoFrame 定义 3.0.0
NotifyPreprocessingDefaultVideoData

通知名称: NotifyPreprocessingDefaultVideoData

说明: 通知用户采集到默认视频流数据, 可以进行视频数据预处理操作

参数名称 类型 说明 最低版本
out_video_frame RongRTCVideoFrame 视频一帧数据, 详见 RongRTCVideoFrame 定义 3.0.0
NotifySendRecvStatisticsData

通知名称: NotifySendRecvStatisticsData

说明: 通知用户接受和发送统计信息

参数名称 类型 说明 最低版本
out_statistics_data_json const char* 统计信息 json 串 3.0.0

RongRTCCallBackOneParam

回调接口类:

class RongRTCCallBackOneParam
{
public:
	virtual void OnCallBack(int out_code) = 0;
};

说明: 带有错误码的回调函数, 接口传入完成回调的类类型

OnCallBack回调参数名称 类型 说明 最低版本
out_code int 接口完成回调, 返回调用接口结果的错误码, 详见 错误码 3.0.0

RongRTCCallBackTwoParam

回调接口类:

class RongRTCCallBackTwoParam
{
public:
	virtual void OnCallBack(int out_code, const char* out_ret) = 0;
};

说明: 带有错误码和返回值 json 串的回调函数, 接口传入完成回调的类类型

OnCallBack回调参数名称 类型 说明 最低版本
out_code int 接口完成回调, 返回调用接口结果的错误码, 详见 错误码 3.0.0
out_ret const char* 接口完成回调, 返回调用接口结果信息, 格式为 json 串 3.0.0

SetLogEnabled

接口: static int SetLogEnabled(bool in_enable, const char in_log_dir, const char in_log_file);

说明: 设置是否启用本地日志

参数名称 类型 说明 最低版本
in_enable bool 是否启用本地日志, 当为 true 时, 代表启用, 当为 false 时, 代表关闭, in_log_dir, in_log_file 无效 3.0.0
in_log_dir const char* 日志目录(需要有写权限) 3.0.0
in_log_file const char* 日志文件名 3.0.0

InitWithAppKey

接口: static int InitWithAppKey(const char in_appkey, const char in_navi_url, RongRTCEventListener* in_listener);

说明: 初始化SDK

参数名称 类型 说明 最低版本
in_appkey const char* AppKey 3.0.0
in_navi_url const char* 导航地址 3.0.0
in_listener RongRTCEventListener* SDK 通知类回调实现 3.0.0

ConnectWithToken

接口: static int ConnectWithToken(const char* in_token);

说明: 连接信令 (IM) 服务器

参数名称 类型 说明 最低版本
in_token const char* 连接信令 (IM) 服务的验证 Token 3.0.0

SetIntStreamParam

接口: static int SetIntStreamParam(RongRTCStreamParamKey in_stream_key, int in_value);

说明: 设置 SDK 参数, 值类型为整形

参数名称 类型 说明 最低版本
in_stream_key RTCStreamParamKey 设置对应的 Key 值, 详见 RTCStreamParamKey 定义 3.0.0
in_value int Key 对应的整形值的 Value 3.0.0

SetBoolStreamParam

接口: static int SetBoolStreamParam(RongRTCStreamParamKey in_stream_key, bool in_value);

说明: 设置 SDK 参数, 值类型为布尔

参数名称 类型 说明 最低版本
in_stream_key RTCStreamParamKey 设置对应的 Key 值, 详见 RTCStreamParamKey 定义 3.0.0
in_value bool Key 对应的布尔值的 Value 3.0.0

JoinRoom

接口: static int JoinRoom(const char in_room_id, RongRTCRoomType in_room_type, RongRTCCallBackTwoParam in_callback);

说明: 加入房间

参数名称 类型 说明 最低版本
in_room_id const char* 房间ID 3.0.0
in_room_type RongRTCRoomType 房间类型, 详见 RongRTCRoomType 定义 3.0.0
in_callback RongRTCCallBackTwoParam* 完成回调, 详见 RongRTCCallBackTwoParam 定义, 回调函数第二个参数为当前房间内用户的流信息, 格式为 [{"userid":[{"mediaType":***, "msid":"***", "state":***, "tag": "***","features":["simulcast"]}]}], userid 为用户 ID, mediaType 为流类型, 0是音频流, 1是视频流, state 为流状态, 0代表关闭, 1代表开启, tag 为流标签, features 为流特征,如果包含simulcast 则代表支持大小流, 示例如下 3.0.0

示例:

回调函数第二个参数为
[
  {
    "11223344":[
      {
        "mediaType":0,
        "msid":"11223344_RongCloudRTC",
        "state":1,
        "tag":"RongCloudRTC"
      },
      {
        "mediaType":1,
        "msid":"11223344_RongCloudRTC",
        "state":0,
        "tag":"RongCloudRTC",
        "features":["simulcast"]
      }
    ]
  },
  {
    "44556677":[
      {
        "mediaType":0,
        "msid":"44556677_RongCloudRTC",
        "state":1,
        "tag":"RongCloudRTC"
      }
    ]
  },
  {
    "55667788":[
      {
        "mediaType":1,
        "msid":"55667788_RongCloudRTC",
        "state":1,
        "tag":"RongCloudRTC"
      }
    ]
  },
  {
    "99887766":""
  }
]
表示
11223344 用户发布了流标签为 RongCloudRTC 的音频流和流标签为 RongCloudRTC 的视频流, 状态为关闭状态, 支持大小流; 
44556677 用户发布了流标签为 RongCloudRTC 的音频流; 
55667788 用户发布了流标签为 RongCloudRTC 的视频流, 不支持大小流; 
99887766 用户没有发任何流 

LeaveRoom

接口: static int LeaveRoom(RongRTCCallBackOneParam* in_callback);

说明: 离开房间

参数名称 类型 说明 最低版本
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0

SetRoomAttributeValue

接口: static int SetRoomAttributeValue(const char in_key, const char in_value, const char in_object_name, const char in_content, RongRTCCallBackOneParam* in_callback);

说明: 设置房间自定义属性值, 如果 in_object_name 不为空且 in_content 不为空, 会在设置属性值的同时往房间内发送消息

参数名称 类型 说明 最低版本
in_key const char* 键值 3.0.0
in_value const char* 3.0.0
in_object_name const char* 消息名字 3.0.0
in_content const char* 消息内容 3.0.0
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0

DeleteRoomAttributeValue

接口: static int DeleteRoomAttributeValue(const char in_keys, const char in_object_name, const char in_content, RongRTCCallBackOneParam in_callback);

说明: 删除房间自定义属性值, 如果 in_object_name 不为空且 in_content 不为空, 会在删除属性值的同时往房间内发送消息

参数名称 类型 说明 最低版本
in_keys const char* 键值 json 串, 格式为 ["key","key"], 例子 ["11223344","33445566"] 3.0.0
in_object_name const char* 消息名字 3.0.0
in_content const char* 消息内容 3.0.0
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0

GetRoomAttributeValue

接口: static int GetRoomAttributeValue(const char in_keys, RongRTCCallBackTwoParam in_callback);

说明: 获取房间自定义属性值

参数名称 类型 说明 最低版本
in_keys const char* 键值 json 串, 格式为 ["key","key"], 例子 ["11223344","33445566"], 如果 in_keys 为空字符串, 即 in_keys = "" 时, 获取所有 key 对应的 value 3.0.0
in_callback RongRTCCallBackTwoParam* 完成回调, 详见 RongRTCCallBackTwoParam 定义, 回调函数第二个参数为 key 对应的 value 值,格式为 [{"key":"value"},{"key":"value"}], 示例如下 3.0.0

示例:

回调函数第二个参数为
[
  {
    "11223344":"abcdefg"
  },
  {
    "33445566":"gfedcba"
  }
]
表示 key 为 11223344, 值为 abcdefg, key 为 33445566, 值为 gfedcba

SubscribeStream

接口: static int SubscribeStream(const char in_subscribe_stream, RongRTCCallBackOneParam in_callback);

说明: 订阅流

参数名称 类型 说明 最低版本
in_subscribe_stream const char* 订阅流的 json 串, 格式为 [{"userid": [{"tag":"***","mediaType":***,"simulcast":***},{"tag":"***","mediaType":***}]}], userid 为用户ID, tag 为流标签, mediaType 为流类型, 0是音频流, 1是视频流, simulcast 为视频大小流标志, 1是大流, 2是小流, 示例如下 3.0.0
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0

示例:

in_subscribe_stream为
[
  {
    "11223344":[
      {
        "tag":"RongCloudRTC",
        "mediaType":0,
        "simulcast":1
      }, 
      {
        "tag":"RongCloudRTC",
        "mediaType":1
      }
     ]
  },
  {
    "55667788":[
      {
        "tag":"RongCloudRTC",
        "mediaType":0,
        "simulcast":2
      },
      {
        "tag":"RongCloudRTC",
        "mediaType":1
      }
    ]
  }
]
表示
订阅用户ID为 11223344, 流标签为 RongCloudRTC 的视频流, 且为小流和流标签为 RongCloudRTC 的音频流; 
订阅用户ID为 55667788, 流标签为 RongCloudRTC 的视频流, 且为大流和流标签为 RongCloudRTC 的音频流

UnSubscribeStream

接口: static int UnSubscribeStream(const char in_unsubscribe_stream, RongRTCCallBackOneParam in_callback);

说明: 取消订阅流

参数名称 类型 说明 最低版本
in_unsubscribe_stream const char* 取消订阅流的json串, 格式为 [{"userid": [{"tag":"***","mediaType":***},{"tag":"***","mediaType":***}]}], userid 为用户 ID, tag 为流标签, mediaType 为流类型, 0是音频流, 1是视频流, 示例如下 3.0.0
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0

示例:

in_unsubscribe_stream为
[
  {
    "11223344":[
      {
        "tag":"RongCloudRTC",
        "mediaType":0
      },
      {
        "tag":"RongCloudRTC",
        "mediaType":1
      }
    ]
  },
  {
    "55667788":[
      {
        "tag":"RongCloudRTC",
        "mediaType":0
      },
      {
        "tag":"RongCloudRTC",
        "mediaType":1
      }
    ]
  }
]
表示
取消订阅用户ID为 11223344, 流标签为 RongCloudRTC 的视频流和流标签为 RongCloudRTC 的音频流; 
取消订阅用户ID为 55667788, 流标签为 RongCloudRTC 的视频流和流标签为 RongCloudRTC 的音频流

PublishDefaultStream

接口: static int PublishDefaultStream(RongRTCStreamType in_publish_stream_type, RongRTCCallBackOneParam* in_callback);

说明: 发布默认流

参数名称 类型 说明 最低版本
in_publish_stream_type RongRTCStreamType 发布默认流(摄像头采集的视频流,麦克风采集的音频流)的类型, 详见 RongRTCStreamType 定义 3.0.0
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0

UnPublishDefaultStream

接口: static int UnPublishDefaultStream(RongRTCStreamType in_unpublish_stream_type, RongRTCCallBackOneParam* in_callback);

说明: 取消发布默认流

参数名称 类型 说明 最低版本
in_unpublish_stream_type RongRTCStreamType 取消发布默认流(摄像头采集的视频流,麦克风采集的音频流)的类型, 详见 RongRTCStreamType 定义 3.0.0
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0

SetLocalDefaultAudioStreamEnabled

接口: static int SetLocalDefaultAudioStreamEnabled(bool in_enable, RongRTCCallBackOneParam* in_callback);

说明: 打开或者关闭本地默认音频流

参数名称 类型 说明 最低版本
in_enable bool 是否关闭, true 为打开, false 为关闭 3.0.0
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0

SetLocalDefaultVideoStreamEnabled

接口: static int SetLocalDefaultVideoStreamEnabled(bool in_enable, RongRTCCallBackOneParam* in_callback);

说明: 打开或者关闭本地默认视频流

参数名称 类型 说明 最低版本
in_enable bool 是否关闭, true 为打开, false 为关闭 3.0.0
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0

SetSpeakerEnabled

接口: static int SetSpeakerEnabled(bool in_enable, RongRTCCallBackOneParam* in_callback);

说明: 打开或者关闭扬声器

参数名称 类型 说明 最低版本
in_enable bool 是否关闭, true 为打开, false 为关闭 3.0.0
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0

PublishScreenShareStream

接口: static int PublishScreenShareStream(RongRTCCallBackOneParam* in_callback);

说明: 发布SDK内置屏幕共享流

参数名称 类型 说明 最低版本
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0

UnPublishScreenShareStream

接口: static int UnPublishScreenShareStream(RongRTCCallBackOneParam* in_callback);

说明: 取消发布SDK内置屏幕共享流

参数名称 类型 说明 最低版本
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0

PublishCustomizeStream

接口: static int PublishCustomizeStream(const char in_publish_stream, RongRTCCallBackOneParam in_callback);

说明: 发布自定义视频流

参数名称 类型 说明 最低版本
in_publish_stream const char* 发布自定义流的 json 串, 格式为 [{"tag":"***", "resolution":"***"}], tag 为流标签, resolution 为视频流分辨率, 格式为 宽度X高度, 示例如下 3.0.0
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0

示例:

in_publish_stream为
[
  {
    "tag":"Video1",
    "resolution":"640X480"
  },
  {
    "tag":"Video2",
    "resolution":"640X480"
  }
]
表示
发布流标签为 Video1, 分辨率为 640X480 的视频流;
发布流标签为 Video2, 分辨率为 640X480 的视频流

UnPublishCustomizeStream

接口: static int UnPublishCustomizeStream(const char in_unpublish_stream, RongRTCCallBackOneParam in_callback);

说明: 取消发布自定义视频流

参数名称 类型 说明 最低版本
in_unpublish_stream const char* 取消发布自定义流的 json 串, 格式为 [{"tag":"***"},{"tag":"***"}], tag 为流标签, 示例如下 3.0.0
in_callback RongRTCCallBackOneParam* 完成回调, 定义详见 RongRTCCallBackOneParam 3.0.0

示例:

in_unpublish_stream为
[
  {
    "tag":"Video1"
  },
  {
    "tag":"Video2"
  }
]
表示
取消发布流标签为 Video1 的自定义视频流;
取消发布流标签为 Video2 的自定义视频流

SendCustomizeStreamVideoFrame

接口: static int SendCustomizeStreamVideoFrame(const char* in_tag, RongRTCVideoFrame in_video_frame);

说明: 发送自定义视频流数据

参数名称 类型 说明 最低版本
in_tag const char* 自定义视频流的流标签 3.0.0
in_video_frame RongRTCVideoFrame 一帧视频流数据, 详见 RongRTCVideoFrame 定义 3.0.0

SendRTCMessage

接口:

static int SendRTCMessage(const char in_object_name, const char in_content, RongRTCCallBackOneParam* in_callback);

说明:

向房间内发送消息

参数名称 类型 说明 最低版本
in_object_name const char* 消息名字 3.0.0
in_content const char* 消息内容 3.0.0
in_callback RongRTCCallBackOneParam* 完成回调, 详见 RongRTCCallBackOneParam 定义 3.0.0