频道信息查询
调用 query 接口查询频道相关信息,例如频道名称、频道是否存在、成员名以及成员数。
JCManager::shared()->mediaChannel->query("channelId");
查询操作发起后,查询的结果通过 onQuery 回调上报。
void JCManager::onQuery(int operationId, bool result, JCMediaChannelReason reason, JCMediaChannelQueryInfo* queryInfo)
{
//查询结果
if (result) {
//查询到的 channelId
CString channelId = queryInfo->getChannelId();
//查询到的成员数
int number = queryInfo->getClientCount();
}
}
发送消息
如果想在频道中给其他成员发送消息,可以调用 sendMessage 方法。
//最后一个参数为接收者 id,如果为空则会发给频道所有人员
JCManager::shared()->mediaChannel->sendMessage(type, "消息内容", NULL);
其中,type(消息类型)为自定义类型。例如 text、image、file 等类型,在对收到的消息进行解析时消息类型需要保持一致。
当频道中的其他成员收到消息时,会收到 onMessageReceive 回调。
void JCManager::onMessageReceive(const char* type, const char* content, const char* fromUserId)
{
std::stringstream s;
s << "收到Conf消息 " << fromUserId << " type:" << type << " content:" << JCTool::Utf8ToGB2312(content);
}
频道成员管理
获取频道成员
调用 getParticipant 方法,传入成员的 userId 获取频道成员对象。
JCMediaChannelParticipant* participant = JCManager::shared()->mediaChannel->getParticipant(userId);
获取频道所有成员对象
调用 getParticipants 方法获取频道所有成员对象。
std::list<JCMediaChannelParticipant*>* participants = JCManager::shared()->mediaChannel->getParticipants();
踢出成员
调用 kick 方法将成员踢出会议。
//获取成员对象
JCMediaChannelParticipant* participant = JCManager::shared()->mediaChannel->getParticipant(userId);
//踢除成员
JCManager::shared()->mediaChannel->kick(participant);