====== 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客户端集成]]