直播中,最重要的是互动,在视频直播源码中,游戏是增强观众和主播的互动的重要功能,下面为大家介绍直播间转盘游戏功能,并介绍其直播app代码实现方式
如上图所示,直播间下部的紫色部分是一个转盘面板,四周的扇形区域放置各种礼物,点击中间的开始抽奖,转盘开始转动,停止的时候会随机指向一个区域,抽奖人将获得这个区域的礼物,这个礼物可以用来打赏主播。
这一游戏的实现原理是,当用户点击开始抽奖的时候,请求服务端接口,返回将要中奖的礼物的信息,然后让转盘转动到指定区域,然后给出中奖提示。
涉及到的直播app代码如下:
public class LuckPanDialogFragment extends AbsDialogFragment implements View.OnClickListener {
private ImageView[] mPrizeIcons;
private TextView[] mPrizeNames;
private TextView[] mTurnTableBtnTimes;
private TextView[] mTurnTableBtnPrices;
private View mPan;
private ObjectAnimator mAnimator;
private List<TurntableConfigBean> mTurntableConfigBeanList;
private TurntableConfigBean mSelTurnTableBean;
private List<TurntableGiftBean> mTurntableGiftBeanList;
private List<TurntableGiftBean> winResultGiftBeanList;
@Override
protected int getLayoutId() {
return R.layout.dialog_luck_pan;
}
@Override
protected int getDialogStyle() {
return R.style.dialog2;
}
@Override
protected boolean canCancel() {
return true;
}
@Override
protected void setWindowAttributes(Window window) {
window.setWindowAnimations(R.style.bottomToTopAnim);
WindowManager.LayoutParams params = window.getAttributes();
params.width = WindowManager.LayoutParams.MATCH_PARENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.gravity = Gravity.BOTTOM;
window.setAttributes(params);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mPan = findViewById(R.id.pan);
mPrizeIcons = new ImageView[8];
mPrizeNames = new TextView[8];
mPrizeIcons[0] = (ImageView) find