====== Android客户端集成 ====== ''本文档已不再维护,新版文档见:[[ccim:android:quickstart|环信即时通讯 IM Android 快速入门]]。'' ------- ===== 基础功能 ===== 关于登录、消息、群组等基础IM功能,请参考文档[[im:android:sdk:import|Android SDK 介绍及导入]]。 ===== 直播聊天室管理 ===== ==== 前期准备 ==== 直播聊天室功能由于要依赖于第三方直播SDK Ucloud,代码暂时放在demo里。 使用前需要先加入Ucloud的库,加入以下依赖至你项目的''module''级别的''build.gradle''文件里。 compile(name: 'ucommon-android-sdk-1.0.0', ext: 'aar') compile(name: 'ulive-android-sdk-1.5.1', ext: 'aar') compile(name: 'uvod-android-sdk-1.5.8', ext: 'aar') **请注意: 因为demo中的推拉流使用的是临时地址,用户在集成时需要使用“服务器集成”中的方法设置自己申请的直播的推流拉流地址。** ==== 创建直播室 ==== /** * 创建直播室 * @param module 包括直播室名称,直播室描述,直播室房主,直播室封面,直播室最大人数 */ @POST("appserver/liverooms") LiveData createLiveRoom(@Body LiveRoom module); ==== 开始直播 ==== /** * 开始直播,status为ongoing * @param roomId 直播间id * @param username 主播id * @param status 直播状态 * @return */ @POST("appserver/liverooms/{liveroomid}/users/{username}/{status}") LiveData changeLiveStatus(@Path("liveroomid") String roomId, @Path("username") String username, @Path("status") String status); ==== 结束直播 ==== /** * 结束直播,status为offline * @param roomId 直播间id * @param username 主播id * @param status 直播状态 * @return */ @POST("appserver/liverooms/{liveroomid}/users/{username}/{status}") LiveData changeLiveStatus(@Path("liveroomid") String roomId, @Path("username") String username, @Path("status") String status); ==== 获取正在直播的直播室列表 ==== /** * 获取正在直播的直播室列表 * @param limit 一次取的条数 * @param cursor 在这个游标基础上取数据,首次获取传null * @return */ @GET("appserver/liverooms/ongoing") LiveData>> getLivingRoomList(@Query("limit") int limit, @Query("cursor") String cursor); ==== 获取直播室列表 ==== /** * 获取直播室列表 * @param limit 一次取的条数 * @param cursor 在这个游标基础上取数据,首次获取传null * @return */ @GET("appserver/liverooms") LiveData>> getLiveRoomList(@Query("limit") int limit, @Query("cursor") String cursor); ==== 获取直播室详情 ==== /** * 直播室详情 * @param roomId 直播室id * @return */ @GET("appserver/liverooms/{id}") LiveData getLiveRoomDetail(@Path("id") String roomId); ==== 加入直播室 ==== 直接调用聊天室的加入接口即可。 String chatroomId = liveRoom.getChatroomId(); EMClient.getInstance().chatroomManager().joinChatRoom(chatroomId,callback); ==== 退出直播室 ==== 直接调用聊天室的退出接口即可。 String chatroomId = liveRoom.getChatroomId(); EMClient.getInstance().chatroomManager().leaveChatRoom(chatroomId); ==== 更新直播室 ==== /** * 更新直播室 * @param roomId 直播室id * @param body 包括直播室名称(name),直播室描述(description), * 直播间成员最大数(maxusers),直播间封面Url(page),直播间自定义属性(ext,Map类型) * @return */ @PUT("appserver/liverooms/{id}") LiveData updateLiveRoom(@Path("id") String roomId, @Body RequestBody body); ===== 发送消息 ===== 请参考[[im:android:basics:message|消息收发]] 实现礼物、点赞及弹幕等自定义消息,可以使用消息类型中的自定义消息去实现。为了方便使用,在demo中,我们将常用的礼物等消息进行了封装。具体使用文档请参考[[https://github.com/easemob/livestream_demo_android|自定义消息使用]]。 ==== 关于点赞消息发送的建议 ==== 考虑到用户会连续点击,建议做消息合并处理,降低服务器压力。比如可以采取设置定时器,每隔几秒将这个期间的点赞数一次性发送。也可参考demo中实现[[https://github.com/easemob/livestream_demo_android|Android直播demo]]。 ===== 观众管理 ===== 关于直播室禁言、白名单、黑名单等操作,请参考[[im:android:basics:chatroom|聊天室管理]]。 ---- 上一页:[[im:extensions:live:server|服务端集成]] 下一页:[[im:extensions:live:ios|iOS客户端集成]]