关于登录、消息、群组等基础IM功能,请参考文档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 name 直播室名称
* @param description 直播室描述
* @param coverUrl 直播封面图片url
*/
LiveManager.getInstance().createLiveRoom(name, desc, coverUrl);
第二种方法:
/**
* 根据指定的已经关联的直播室id创建直播
* @param name 直播室名称
* @param description 直播室描述
* @param coverUrl 直播封面图片url
* @param liveRoomId 要关联直播的直播室id
*/
LiveManager.getInstance().createLiveRoom(name, desc, coverUrl, liveRoomId);
如何关联直播室:
每次创建一个新的直播室时,创建者自动会关联此直播室,也可通过管理后台调用相应接口关联直播室。
如何获取关联的直播室列表:
调用LiveManager.getInstance().getAssociatedRooms(uerid)
LiveManager.getInstance().terminateLiveRoom(liveId);
/**
* 获取正在直播的直播室列表
* @param limit 取多少
* @param cursor 在这个游标基础上取数据,首次获取传null
*/
LiveManager.getInstance().getLivingRoomList(pageSize, cursor);
LiveManager.getInstance().getLiveRoomDetails(liveId);
直接调用聊天室的加入接口即可。
String chatroomId = liveRoom.getChatroomId();
EMClient.getInstance()
.chatroomManager()
.joinChatRoom(chatroomId,callback);
直接调用聊天室的退出接口即可。
String chatroomId = liveRoom.getChatroomId();
EMClient.getInstance().chatroomManager().leaveChatRoom(chatroomId);
LiveStatus status = LiveManager.getInstance().getLiveRoomStatus(liveId);
public enum LiveStatus{
not_start, //未开始
ongoing, //正在直播
completed, //直播已结束
closed //直播间已关闭
}
LiveManager.getInstance().updateLiveRoomCover(liveId, coverUrl);
请参考消息收发
您可以使用透传消息来实现礼物,撒花等聊天室常见功能,比如cmd里面action: flower, UI上显示撒花效果,如果action: plane 就显示成送飞机做礼物
关于直播室加人、踢人、禁言、黑名单等操作,请参考聊天室管理。