-
Notifications
You must be signed in to change notification settings - Fork 4
Home
wangqiang edited this page Feb 10, 2018
·
2 revisions
所有对外的API接口都在LQAClient类中。在使用前,请先查看接入事项。
在创建LQAClient 对象时,需要用到LQAConfig,注意,此时必须设置好LQAConfig中的参数。负责会出现RuntimeException异常。
LQAConfig mConfig = new LQAConfig();
mConfig.setIMInfo(QAConfig.mIMkey, QAConfig.mIMToken);
// 设置问答房间
mConfig.setChatMessageId(QAConfig.mQARoom);
// 设置Ksyun key
mConfig.setKsyunAppKey(QAConfig.mKsyunKey);
// 设置当前用户是否可参与答题环节,默认不可以
mConfig.setUserContestStatus(true);
// 设置问题下发用户
mConfig.setServerUserId(QAConfig.mServerUserId);
// 设置最大使用复活卡次数
mConfig.setMaxExtraLiveUsedInContest(QAConfig.mMaxExtraLiveUsedInContest);
// 设置当前用户有多少复活卡
mConfig.setUserExtraLiveCount(QAConfig.mUserExtraLiveCount);
// 设置当前用户id
mConfig.setUserId(QAConfig.mUid);
// 设置当前直播场次
mConfig.setContestLiveId(QAConfig.mContestSequenceId);
// 设置播放器对象
mConfig.setMediaPlayer(mPlayer.getPlayer());
// 设置播放地址
mConfig.setPlayerUrl(QAConfig.mLiveUrl);
// 创建LQAClient对象
LQAClient mClient = new LQAClient(mConfig);
- init
/**
* @param Context 上下文
* @param OnLQAEventListener 状态监听,可以收到init状态、聊天室加入状态和答题等状态
*/
mClient.init(Context, OnLQAEventListener);
- release
if (mClient != null) {
// 当问答直播退出时需要调用。注意和init搭配使用
mClient.release();
}
mClient = null;
以上两个方法,必须在合适的位置进行调用
- 设置相应的回调
// 设置聊天监听器,如果您不使用SDK提供的聊天功能,可以不进行这个设置
mClient.setOnLiveChatMessageListener(OnLiveChatMessageListener);
// 设置答题监听器,当您收到onShowQuestion消息时,需要正确解析问题并且展示问题
mClient.setOnLQAQuestionListener(OnLQAQuestionListener);
// 设置结果监听,当您收到onResult消息时,需要正确解析数据并且展示答题结果
mClient.setOnLQAResultListener(OnLQAResultListener);
// 设置最终答题结果监听,收到这个消息后,表示所有的题目和答案都下发完成
mClient.setOnLQAMatchResultListener(OnLQAMatchResultListener);
- 答题
/**
* @param msgID 标示您回答的是那道题,通过OnLQAQuestionListener监听器返回的LQAQuestion获取
* @param option 您回答的选项,必须是LQAQuestion中返回的选项
* @param signalingTimestamp 计算请求信令的时间戳,毫秒,由AppServer颁发。
* @param requestSignaling 请求信令,由AppServer根据服务端Token、AppKey、UID、Timestamp计算md5得出
*/
public void answer(final String msgID, String option, String signalingTimestamp, String requestSignaling);
注意
- answer调用成功与失败可以通过OnLQAEventListener获取到
- 当answer调用失败时,您不可以继续答题,此时复活卡也不会生效,会直接导致用户被淘汰
- 当answer调用成功后,如果回答失败,会自动扣除复活卡
- 中途进入直播时,不允许答题
- setUserContestStatus设置为false时不允许答题,默认允许答题
- 加入聊天室
// 如果您需要聊天功能,必须调用加入聊天室的方法,聊天室ID请让服务器分配,如果客户端随意固定或者生成聊天ID,会导致消息丢失等问题
mClient.joinRoom(String);
注意,调用joinRoom的时机
- 仿照Demo中LivePlayerActivity类里OnLQAEventListener的实现
- 在收到LQAClient.IM_QA_CONNECT消息时,表示初始化成功,此时才可以调用joinRoom方法
- 当joinRoom调用成功后,会直接通知您LQAClient.IM_CHAT_CONNECT状态
- 发送聊天消息
/**
* @param TextMessage 融云定义消息体封装,建议您和Demo一样直接传输json格式字符串
* @param IRongCallback.ISendMessageCallback 消息发送状态,当消息发送完成时您就可以进行消息的展示了
*
*/
mClient.sendLiveChatMessage(TextMessage, IRongCallback.ISendMessageCallback);
- 获取已经使用的复活卡数量
// 获取已经使用的复活卡数量。注意:是已经使用的,不是剩余的
mClient.getUsedReviveCardCount()
用好getUsedReviveCardCount接口 和Demo中QAActionUI一样,通过getUsedReviveCardCount接口返回的数据,您可以做一些状态判断
- 如果调用getUsedReviveCardCount和上次记录的结果一样,并且您的回答是错误的,这就说明您已经被淘汰。 (注意:最后一题是不会使用复活卡的,也不会自动复活)
- 如果您调用getUsedReviveCardCount比上次记录的结果大,就说明您当前题答错了,已经自动为您使用了复活卡
- getUsedReviveCordCount 数量改变,只在onResult被回调时发生
- 获取版本号
// 通过以下方法获取使用的SDK版本
mClient.getVersion()