差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
im:other:integrationcases:tc [2019/06/14 02:50]
jk [Demo 源码]
im:other:integrationcases:tc [2019/07/01 10:20] (当前版本)
jk [加入语聊房间]
行 82: 行 82:
 我们可以通过一张图,来了解创建语聊房间接口的调用逻辑: 我们可以通过一张图,来了解创建语聊房间接口的调用逻辑:
  
-{{ :​im:​other:​integrationcases:​创建房间1.png?​nolink |}}+{{:​im:​other:​integrationcases:​创建语聊房间1.png?​nolink|}}
  
 上图中每步涉及到的 iOS/Android 接口如下,其中部分调用到了 AppServer 的接口,开发者需要自己实现 AppServer 功能。 上图中每步涉及到的 iOS/Android 接口如下,其中部分调用到了 AppServer 的接口,开发者需要自己实现 AppServer 功能。
行 89: 行 89:
 ^步骤 ​                                 ^%%iOS API%%  ^%%Android API%%^ ^步骤 ​                                 ^%%iOS API%%  ^%%Android API%%^
 |1.创建语聊房间 ​                        ​|%%AppServer API%%|| |1.创建语聊房间 ​                        ​|%%AppServer API%%||
-|2.创建 conference ​                    ​|%%AppServer API http://​a1-hsb.easemob.com/​{orgname}/​{appname}/​conferences POST%%||+|2.[[im:​server:​basics:​conferencemanage#​创建会议| ​创建conference]] |%%AppServer API http://​a1-hsb.easemob.com/​{orgname}/​{appname}/​conferences POST%%||
 |3.创建 chatroom ​                      ​|%%AppServer API  http://​a1.easemob.com/​{orgname}/​{appname}/​chatrooms POST%%|| |3.创建 chatroom ​                      ​|%%AppServer API  http://​a1.easemob.com/​{orgname}/​{appname}/​chatrooms POST%%||
 |4.创建成功返回conference ID,chatroom ID|%%AppServer API%%|| |4.创建成功返回conference ID,chatroom ID|%%AppServer API%%||
-|5.加入 conference ​                     |EMClient.sharedClient.conferenceManager joinConferenceWithConfId:​ password: completion:​|EMClient.getInstance().conferenceManager().joinConference(conferenceId,​ password, callback);​| +|5.加入 conference ​                     ​|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_i_e_m_conference_manager-p.html#​a465bd08db130e2d10d9bf0d418871bac|EMClient.sharedClient.conferenceManager joinConferenceWithConfId:​ password: completion:]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​classcom_1_1hyphenate_1_1chat_1_1EMConferenceManager.html#​aa04a85ab5f36f3f4ac14dc23ac18afb8|EMClient.getInstance().conferenceManager().joinConference(conferenceId,​ password, callback);]]
-|6.加入 chatroom ​                       |EMClient.sharedClient.roomManager joinChatroom:​ completion:​|EMClient.getInstance().chatroomManager().joinChatRoom(chatRoomId,​ callback);​| +|6.加入 chatroom ​                       ​|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_i_e_m_chatroom_manager-p.html#​a4091826df825b9f1825f2ea97c4fb3e2|EMClient.sharedClient.roomManager joinChatroom:​ completion:]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​classcom_1_1hyphenate_1_1chat_1_1EMChatRoomManager.html#​af2d592b0801dbc333c0c60bd551e150d|EMClient.getInstance().chatroomManager().joinChatRoom(chatRoomId,​ callback);]]
-|7.设置会议属性 ​                         |EMClient.sharedClient.conferenceManager setConferenceAttribute:​ value: completion:​|EMClient.getInstance().conferenceManager().setConferenceAttribute(key,​ value, callback);|+|7.设置会议属性 ​                         ​|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_i_e_m_conference_manager-p.html#​a7e29cc54c08e9cab13a3b58df89eea80|EMClient.sharedClient.conferenceManager setConferenceAttribute:​ value: completion:]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​classcom_1_1hyphenate_1_1chat_1_1EMConferenceManager.html#​a785be01c2f30dbe661fb91c9c8cac7a9|EMClient.getInstance().conferenceManager().setConferenceAttribute(key,​ value, callback);]]|
  
 ---- ----
行 110: 行 110:
 ^步骤^%%iOS API%%^%%Android API%%^ ^步骤^%%iOS API%%^%%Android API%%^
 |1.获取语聊房间列表|%%AppServer ​ API%%|| ​ |1.获取语聊房间列表|%%AppServer ​ API%%|| ​
-|2.加入 conference|EMClient.sharedClient.conferenceManager joinConferenceWithConfId:​ password: completion:​|EMClient.getInstance().conferenceManager().joinConference(conferenceId,​ password, callback);​| +|2.加入 conference ​                     ​|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_i_e_m_conference_manager-p.html#​a465bd08db130e2d10d9bf0d418871bac|EMClient.sharedClient.conferenceManager joinConferenceWithConfId:​ password: completion:]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​classcom_1_1hyphenate_1_1chat_1_1EMConferenceManager.html#​aa04a85ab5f36f3f4ac14dc23ac18afb8|EMClient.getInstance().conferenceManager().joinConference(conferenceId,​ password, callback);]]
-|3.加入 chatroom|EMClient.sharedClient.roomManager joinChatroom:​ completion:​|EMClient.getInstance().chatroomManager().joinChatRoom(chatRoomId,​ callback);​| +|3.加入 chatroom ​                       ​|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_i_e_m_chatroom_manager-p.html#​a4091826df825b9f1825f2ea97c4fb3e2|EMClient.sharedClient.roomManager joinChatroom:​ completion:]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​classcom_1_1hyphenate_1_1chat_1_1EMChatRoomManager.html#​af2d592b0801dbc333c0c60bd551e150d|EMClient.getInstance().chatroomManager().joinChatRoom(chatRoomId,​ callback);]]
-|4.同步会议属性|EMConferenceManagerDelegate#​-conferenceAttributeUpdated:​attributes:​|EMConferenceListener#​onAttributesUpdated(attributes);​|+|4.同步会议属性|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_e_m_conference_manager_delegate-p.html|EMConferenceManagerDelegate#​-conferenceAttributeUpdated:​attributes:​]] |[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​classcom_1_1hyphenate_1_1chat_1_1EMConferenceAttribute.html|EMConferenceListener#​onAttributesUpdated(attributes);​]]|
  
 ---- ----
行 128: 行 128:
  
 ^步骤 ​        ​^%%iOS API%%       ​^%%Android API%%^ ^步骤 ​        ​^%%iOS API%%       ​^%%Android API%%^
-|1.请求上麦 ​   |EMClient.sharedClient.chatManager sendMessage:​ progress: completion:​|EMClient.getInstance().chatManager().sendMessage(msg);​| +|1.请求上麦 ​   ​|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_i_e_m_chat_manager-p.html#​ad139d7ad31d934a721a979955baf1868|EMClient.sharedClient.chatManager sendMessage:​ progress: completion:]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​classcom_1_1hyphenate_1_1chat_1_1EMChatManager.html#​ad50be7183f088c415b9507bc7ce792e6|EMClient.getInstance().chatManager().sendMessage(msg);​]]
-|2.改变角色属性|EMClient.sharedClient.conferenceManager changeMemberRoleWithConfId:​ memberNames:​ role: completion:​|EMClient.getInstance().conferenceManager().grantRole(targetRole);​| +|2.改变角色属性|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_i_e_m_conference_manager-p.html#​ac613f23e6f13a14f8c40f12f5c1b45f9|EMClient.sharedClient.conferenceManager changeMemberRoleWithConfId:​ memberNames:​ role: completion:]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​classcom_1_1hyphenate_1_1chat_1_1EMConferenceManager.html#​a52a1e73bc4b588bc57227c7a57512409|EMClient.getInstance().conferenceManager().grantRole(targetRole);​]]
-|3.上麦成为主播|EMConferenceManagerDelegate#​-roleDidChanged:​|EMConferenceListener#​onRoleChanged(role);​| +|3.上麦成为主播|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_e_m_conference_manager_delegate-p.html#​ada8c07dac796d492a5165b28b50fb02c|EMConferenceManagerDelegate#​-roleDidChanged:​]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​interfacecom_1_1hyphenate_1_1EMConferenceListener.html#​a6df0e567fc534314cee3008c310dfe72|EMConferenceListener#​onRoleChanged(role);​]]
-|4.推流 ​      ​|EMClient.sharedClient.conferenceManager publishConference:​ streamParam:​ completion:​|EMClient.getInstance().conferenceManager().publish(param,​callback);​| +|4.推流 ​      |[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_i_e_m_conference_manager-p.html#​a4a621606d73a0ea1fab14aa336446a6b|EMClient.sharedClient.conferenceManager publishConference:​ streamParam:​ completion:]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​classcom_1_1hyphenate_1_1chat_1_1EMConferenceManager.html#​aa087a548e2d8f79ce06f50927decc137|EMClient.getInstance().conferenceManager().publish(param,​callback);​]]
-|5.收到推流通知|EMConferenceManagerDelegate#​-streamDidUpdate:​ addStream:​|EMConferenceListener#​onStreamAdded(stream);​| +|5.收到推流通知|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_e_m_conference_manager_delegate-p.html#​aaec86cf13eaa8930fa5261c1f3848785|EMConferenceManagerDelegate#​-streamDidUpdate:​ addStream:]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​interfacecom_1_1hyphenate_1_1EMConferenceListener.html#​ad06a034d00575fbf41798b98bebe6089|EMConferenceListener#​onStreamAdded(stream);​]]
-|6.订阅 ​      ​|EMClient.sharedClient.conferenceManager subscribeConference:​ streamId: remoteVideoView:​ completion:​|EMClient.getInstance().conferenceManager().subscribe(stream,​surface,​callback);​|+|6.订阅 ​      |[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_i_e_m_conference_manager-p.html#​a97e899177d4a7abcc49d8d7ea5152039|EMClient.sharedClient.conferenceManager subscribeConference:​ streamId: remoteVideoView:​ completion:]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​classcom_1_1hyphenate_1_1chat_1_1EMConferenceManager.html#​a405c38df38cbb0e6bf11420ff80540e0|EMClient.getInstance().conferenceManager().subscribe(stream,​surface,​callback);​]]|
  
 ---- ----
行 149: 行 149:
  
 ^步骤^%%iOS API%%^%%Android API%%^ ^步骤^%%iOS API%%^%%Android API%%^
-|1.请求下麦|EMClient.sharedClient.chatManager sendMessage:​ progress: completion:​ |EMClient.getInstance().chatManager().sendMessage(msg);​| +|1.请求下麦|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_i_e_m_chat_manager-p.html#​ad139d7ad31d934a721a979955baf1868|EMClient.sharedClient.chatManager sendMessage:​ progress: completion:]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​classcom_1_1hyphenate_1_1chat_1_1EMChatManager.html#​ad50be7183f088c415b9507bc7ce792e6|EMClient.getInstance().chatManager().sendMessage(msg);​]]
-|2.改变角色属性|EMClient.sharedClient.conferenceManager changeMemberRoleWithConfId:​ memberNames:​ role: completion:​ |EMClient.getInstance().conferenceManager().grantRole(targetRole);​| +|2.改变角色属性|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_i_e_m_conference_manager-p.html#​ac613f23e6f13a14f8c40f12f5c1b45f9|EMClient.sharedClient.conferenceManager changeMemberRoleWithConfId:​ memberNames:​ role: completion:]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​classcom_1_1hyphenate_1_1chat_1_1EMConferenceManager.html#​a52a1e73bc4b588bc57227c7a57512409|EMClient.getInstance().conferenceManager().grantRole(targetRole);​]]
-|3.下麦成为观众|EMConferenceManagerDelegate#​-roleDidChanged:​|EMConferenceListener#​onRoleChanged(role);​| +|3.下麦成为观众|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_e_m_conference_manager_delegate-p.html#​ada8c07dac796d492a5165b28b50fb02c|EMConferenceManagerDelegate#​-roleDidChanged:​]]|[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​interfacecom_1_1hyphenate_1_1EMConferenceListener.html#​a6df0e567fc534314cee3008c310dfe72|EMConferenceListener#​onRoleChanged(role);​]]
-|4.停止推流|EMClient.sharedClient.conferenceManager unpublishConference:​ streamId: completion:​ |EMClient.getInstance().conferenceManager().unpublish(publishId,​callback);​|+|4.停止推流|[[http://​www.easemob.com/​apidoc/​ios/​chat3.0/​protocol_i_e_m_conference_manager-p.html#​a679bced8da6fa7b293626c0c3243cfe8|EMClient.sharedClient.conferenceManager unpublishConference:​ streamId: completion:]] |[[http://​www.easemob.com/​apidoc/​android/​chat3.0/​classcom_1_1hyphenate_1_1chat_1_1EMConferenceManager.html#​a926c631717ce04a6c2a31401c8e095f7|EMClient.getInstance().conferenceManager().unpublish(publishId,​callback);​]]|
 |5.销毁语聊房间|%%AppServer API%%|| |5.销毁语聊房间|%%AppServer API%%||
 |6.销毁conference|%%AppServer API http://​a1-hsb.easemob.com/​{orgname}/​{appname}/​conferences/​{confrId} DELETE%%|| |6.销毁conference|%%AppServer API http://​a1-hsb.easemob.com/​{orgname}/​{appname}/​conferences/​{confrId} DELETE%%||