4_5-带货场景-打赏

1 功能概述

打赏功能支持观众给主播赠送礼物,观众打赏界面被封装为打赏弹层PLVECRewardPopupView,打赏礼物条被封装为PLVECRewardGiftAnimView

2 使用演示

发送打赏礼物和监听他人打赏事件均依赖于聊天室的chatroomPresenter,需要预先构建该Presenter对象

发送打赏示例代码如下:

// PLVECLiveHomeFragment.java
// 打赏弹层创建
PLVECRewardPopupView rewardPopupView = new PLVECRewardPopupView();

// 显示打赏弹层
private void showRewardLayout(View v) {
    // 显示打赏弹层,并设置点击打赏按钮时的回调响应
    rewardPopupView.showRewardLayout(v, new PLVECRewardGiftAdapter.OnViewActionListener() {
        @Override
        public void onRewardClick(View view, PLVCustomGiftBean giftBean) {
            // 隐藏打赏弹层
            rewardPopupView.hide();
            
            String nickName = PolyvSocketWrapper.getInstance().getLoginVO().getNickName();
            showRewardGiftAnimView(nickName + "(我)", giftBean);
            addCustomGiftToChatList(nickName + "(我)", giftBean.getGiftName(), giftBean.getGiftType(), true);
            // 通过自定义信息事件发送礼物信息至聊天室
            chatroomPresenter.sendCustomGiftMessage(giftBean, nickName + " 赠送了" + giftBean.getGiftName());
        }
    });
}

监听他人打赏事件示例代码如下:

3 实现介绍

3.1 打赏弹层 - PLVECRewardPopupView

Demo中PLVECRewardPopupView使用了本地生成的打赏礼物列表作为演示,也可以接入后端实现动态的礼物列表。

3.2 打赏礼物条 - PLVECRewardGiftAnimView

打赏礼物条PLVECRewardGiftAnimView通过调用其acceptRewardGiftMessage(RewardGiftInfo)方法进行礼物条的显示,会自动隐藏。

在内部方法showRewardLayout()中进行了礼物条动画的逻辑处理,可以根据实际需要进行修改。

Last updated

Was this helpful?