Skip to content

easemob/livestream_demo_android

Repository files navigation

环信直播聊天室简介

简介

环信直播聊天室(以下简称直播聊天室)展示了环信 IM SDK直播聊天室的能力。除了提供基本的聊天外,还提供了赠送礼物的自定义消息,开发者可以根据自己的实际需求添加新的自定义消息。

核心类介绍:

  • CdnLiveAudienceActivity:观众直播间页面
  • CdnLiveHostActivity:主播直播页面
  • LiveAudienceFragment:集成观众端聊天室相关逻辑
  • LiveAnchorFragment:集成主播端聊天室相关逻辑

其他端开源地址:

集成环信 Chat SDK

开发环境要求

  • Android Studio 3.6或更高版本。
  • SDK targetVersion至少为26。

添加远程依赖

implementation 'io.hyphenate:hyphenate-chat:3.9.9'
implementation 'io.hyphenate:ease-im-kit:3.9.9'

可通过一下地址查看最新SDK版本号:

集成文档:

使用环信聊天室

为方便开发者使用,项目中将聊天室相关逻辑放到了chatroom library 中,开发者可以根据自己的需求对这个库进行更改。

核心类介绍

  • EaseChatRoomMessagesView:直播聊天室消息UI,用户可以自定义相关属性设置UI显示。
  • EaseLiveMessageHelper:用于监听接收自定义消息,发送自定义消息。
  • EaseLiveMessageType:用户定义了demo中用到的自定义消息类型(礼物消息)。
  • OnLiveMessageListener:监听聊天室消息接受相关事件。

具体用法

1. 在聊天室加载后,进行初始化,设置房间信息。

EaseLiveMessageHelper.getInstance().init(chatroomId);

2. 增加和取消聊天室自定义消息监听

EaseLiveMessageHelper.getInstance().addLiveMessageListener(new OnLiveMessageListener() {
    @Override
    public void onGiftMessageReceived(EMMessage message) {
        
    }
});
EaseLiveMessageHelper.getInstance().removeLiveMessageListener(this);

3. 发送聊天室消息可以调用如下方法

public void sendTxtMsg(String content, OnSendLiveMessageCallBack callBack);                                                       //文本消息

public void sendGiftMsg(String chatRoomId, String giftId, int num, OnSendLiveMessageCallBack callBack);                           //礼物消息

public void sendCustomMsg(String chatRoomId, String event, Map<String, String> params, final OnSendLiveMessageCallBack callBack); //自定义消息

4. 解析消息相关参数

(1)如果发送的自定义参数与library中相同,可以直接调用如下方法,获得所传的数据

//获取礼物消息中礼物的id
public String getMsgGiftId(EMMessage msg);
//获取礼物消息中礼物的数量
public int getMsgGiftNum(EMMessage msg);

(2)如果自定义消息参数与library中不同,可以调用如下方法,获取消息中的参数

public Map<String, String> getCustomMsgParams(EMMessage message);

5. library中还提供了,判断自定义消息类型的方法

public boolean isGiftMsg(EMMessage msg);    //礼物消息判断

环信直播聊天室架构介绍


环信聊天室中有两个repository,ClientRepository及AppServerRepository。其中ClientRepository用户处理环信 SDK提供 的相关请求,AppServerRepository用户处理app server提供的接口。每个页面有相应的ViewModel以生命周期的方式存储和管 理与UI相关的数据。LiveData是一个具有生命周期感知特性的可观察的数据保持类,一般位于ViewModel中,用于观察数据变化。

集成Agora视频直播SDK

环信聊天室提供了Agora CDN直播能力(https://docs.agora.io/cn/live-streaming/landing-page?platform=Android)。

运行DEMO工程

按照以下步骤运行示例项目:project:\

1. 克隆repo到本地。

    git clone git@github.com:easemob/livestream_demo_android.git

2. 使用 Android Studio 打开 Android 项目(livestream_demo_android)。

3. 配置APPKEY。

在local.properties中配置 CHAT_APPKEYAGORA_APP_ID,你可以在开发者控制台申请相应的APPKEY。

CHAT_APPKEY=*******

AGORA_APP_ID=*******

4. 使用AndroidStudio运行即可。

文档

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages