From 606fc64262821fa01af1461b7f8853a3c5d37fc5 Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Wed, 14 Dec 2022 16:31:43 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=BB=E6=92=AD=E6=92=AD=E6=94=BE=E6=97=B6=E9=95=BF?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../live/activity/LiveRyAnchorActivity.java | 2 + .../yunbao/live/views/LiveRoomViewHolder.java | 20 +------ .../live/views/LiveRyAnchorViewHolder.java | 59 ++++++++++++++++++- .../main/res/layout/view_ry_live_anchor.xml | 21 +++++++ 4 files changed, 82 insertions(+), 20 deletions(-) diff --git a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java index 4b567190b..6e2cf06d3 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java @@ -670,6 +670,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl L.e("createRoom----播放地址--->" + playUrl); mLiveBean.setPull(playUrl); mTxAppId = obj.getString("tx_appid"); + //移除开播前的设置控件,添加直播间控件 if (mLiveReadyViewHolder != null) { mLiveReadyViewHolder.removeFromParent(); @@ -701,6 +702,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl mLiveAnchorViewHolder = new LiveRyAnchorViewHolder(mContext, mContainer); mLiveAnchorViewHolder.setLiveBean(mLiveBean); mLiveAnchorViewHolder.addToParent(); + mLiveAnchorViewHolder.startAnchorLiveTime(); } mLiveBottomViewHolder = mLiveAnchorViewHolder; mSocketRyClient = new SocketRyClient(mLiveUid, this); diff --git a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java index 56003c782..b255d29a3 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -208,8 +208,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis private GifImageView mGifImageView; public static SVGAImageView mSVGAImageView; private ViewGroup mLiveGiftPrizePoolContainer; - private TextView mLiveTimeTextView;//主播的直播时长 - private long mAnchorLiveTime;//主播直播时间 + private View mBtnPrizePool;//奖池按钮 private TextView mPrizePoolLevel;//奖池等级 private int forAct; @@ -939,9 +938,6 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis mBtnRedPack.setOnClickListener(this); if (mContext instanceof LiveAudienceActivity) { mRoot.setOnClickListener(this); - } else { - mLiveTimeTextView = (TextView) findViewById(R.id.live_time); - mLiveTimeTextView.setVisibility(View.VISIBLE); } mLightAnimPresenter = new LiveLightAnimPresenter(mContext, mParentView); mLiveEnterRoomAnimPresenter = new LiveEnterRoomAnimPresenter(mContext, mContentView, mScreenWdith); @@ -2916,16 +2912,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } } - /** - * 主播显示直播时间 - */ - private void showAnchorLiveTime() { - if (mLiveTimeTextView != null) { - mAnchorLiveTime += 1000; - mLiveTimeTextView.setText(StringUtil.getDurationText(mAnchorLiveTime)); - startAnchorLiveTime(); - } - } + public void startAnchorLiveTime() { if (mLiveRoomHandler != null) { @@ -3226,9 +3213,6 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis case WHAT_TIME_CHARGE: mLiveRoomViewHolder.requestTimeCharge(); break; - case WHAT_ANCHOR_LIVE_TIME: - mLiveRoomViewHolder.showAnchorLiveTime(); - break; case WHAT_ANCHOR_PAUSE: mLiveRoomViewHolder.anchorEndLive(); break; diff --git a/live/src/main/java/com/yunbao/live/views/LiveRyAnchorViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveRyAnchorViewHolder.java index bff0273c6..19f774b6a 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRyAnchorViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRyAnchorViewHolder.java @@ -4,13 +4,15 @@ import static com.yunbao.live.activity.LiveActivity.mLiveUid; import static com.yunbao.live.activity.LiveRyAnchorActivity.PKing; import static com.yunbao.live.activity.LiveRyAnchorActivity.pk_nub; import static com.yunbao.live.event.LiveAudienceEvent.LiveAudienceType.START_MESSAGE; -import static com.yunbao.live.event.LiveAudienceEvent.LiveAudienceType.WISH_LIST; import static com.yunbao.live.event.LiveAudienceEvent.LiveAudienceType.WISH_LIST_UPDATE; import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.leaveDRRoom; import android.content.Context; import android.graphics.drawable.Drawable; import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.os.SystemClock; import android.text.TextUtils; import android.util.Log; import android.view.View; @@ -37,6 +39,7 @@ import com.yunbao.common.http.HttpClient; import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.utils.Bus; +import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; import com.yunbao.live.R; import com.yunbao.live.activity.LiveRyAnchorActivity; @@ -77,10 +80,13 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder { private LiveBean mLiveBean; private List mBannerList = new ArrayList<>(); private String activityUrl; - + private TextView mLiveTimeTextView;//主播的直播时长 + private long mAnchorLiveTime;//主播直播时间 + private LiveRoomHandler mLiveRoomHandler; public LiveRyAnchorViewHolder(Context context, ViewGroup parentView) { super(context, parentView); + } @Override @@ -163,6 +169,9 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder { } }); findViewById(R.id.btn_link_mic).setOnClickListener(this); + mLiveTimeTextView = (TextView) findViewById(R.id.live_time); + mLiveTimeTextView.setVisibility(View.VISIBLE); + mLiveRoomHandler = new LiveRoomHandler(); } @Override @@ -568,4 +577,50 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder { initWishList(); setLiveUid(mLiveBean.getUid()); } + + /** + * 主播显示直播时间 + */ + private void showAnchorLiveTime() { + if (mLiveTimeTextView != null) { + mAnchorLiveTime += 1000; + mLiveTimeTextView.setText(StringUtil.getDurationText(mAnchorLiveTime)); + startAnchorLiveTime(); + } + } + + public void startAnchorLiveTime() { + if (mLiveRoomHandler != null) { + mLiveRoomHandler.sendEmptyMessageAtTime(WHAT_ANCHOR_LIVE_TIME, getNextTime(1000)); + } + } + + private final int WHAT_ANCHOR_LIVE_TIME = 3;//直播间主播计时 + + private class LiveRoomHandler extends Handler { + @Override + public void handleMessage(Message msg) { + + switch (msg.what) { + + case WHAT_ANCHOR_LIVE_TIME: + showAnchorLiveTime(); + break; + + + } + } + + public void release() { + removeCallbacksAndMessages(null); + } + } + + private long getNextTime(int time) { + long now = SystemClock.uptimeMillis(); + if (time < 1000) { + return now + time; + } + return now + time + -now % 1000; + } } diff --git a/live/src/main/res/layout/view_ry_live_anchor.xml b/live/src/main/res/layout/view_ry_live_anchor.xml index 796bfaad5..51c1b3c32 100644 --- a/live/src/main/res/layout/view_ry_live_anchor.xml +++ b/live/src/main/res/layout/view_ry_live_anchor.xml @@ -133,6 +133,7 @@ PK" android:layout_height="45dp" android:layout_gravity="bottom"> + + \ No newline at end of file From ee2cebdc41c5231ba85b7034701f4324dbc68161 Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Wed, 14 Dec 2022 17:08:09 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=B8=BB=E6=92=AD=E5=85=B3=E6=92=AD=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8D=E5=B1=95=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.gradle | 4 +-- .../live/activity/LiveRyAnchorActivity.java | 31 ++++++++++--------- .../yunbao/live/views/LiveEndViewHolder.java | 22 ++++++++++++- 3 files changed, 39 insertions(+), 18 deletions(-) diff --git a/config.gradle b/config.gradle index f139351ac..37ecbef9b 100644 --- a/config.gradle +++ b/config.gradle @@ -10,9 +10,9 @@ ext { manifestPlaceholders = [ //正式 - serverHost : "https://napi.yaoulive.com", +// serverHost : "https://napi.yaoulive.com", // 測試 -// serverHost : "https://ceshi.yaoulive.com", + serverHost : "https://ceshi.yaoulive.com", //腾讯地图 txMapAppKey : "EOZBZ-ASLCU-4XPV3-BDCHZ-4E3Q7-H4BWB", diff --git a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java index 6e2cf06d3..d5fd2134e 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java @@ -858,6 +858,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl mLiveEndViewHolder.subscribeActivityLifeCycle(); mLiveEndViewHolder.addToParent(); mLiveEndViewHolder.showData(mLiveBean, mStream); + mLiveEndViewHolder.upData(datas.getString("votes"), datas.getString("length"), Long.parseLong(datas.getString("nums"))); } if (mLiveAnchorViewHolder != null) { mLiveAnchorViewHolder.release(); @@ -979,27 +980,27 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl @Override protected void onPause() { - if (mLiveRoomViewHolder != null) { - mLiveRoomViewHolder.anchorPause(); - } +// if (mLiveRoomViewHolder != null) { +// mLiveRoomViewHolder.anchorPause(); +// } super.onPause(); - if (isKeyBack) { - sendSystemMessage(WordUtil.getString(R.string.live_anchor_leave)); - } - mPaused = true; +// if (isKeyBack) { +// sendSystemMessage(WordUtil.getString(R.string.live_anchor_leave)); +// } +// mPaused = true; } @Override protected void onResume() { super.onResume(); - if (mPaused) { - if (mLiveRoomViewHolder != null) { - mLiveRoomViewHolder.anchorResume(); - } - sendSystemMessage(WordUtil.getString(R.string.live_anchor_come_back)); - CommonHttpUtil.checkTokenInvalid(); - } - mPaused = false; +// if (mPaused) { +// if (mLiveRoomViewHolder != null) { +// mLiveRoomViewHolder.anchorResume(); +// } +// sendSystemMessage(WordUtil.getString(R.string.live_anchor_come_back)); +// CommonHttpUtil.checkTokenInvalid(); +// } +// mPaused = false; } diff --git a/live/src/main/java/com/yunbao/live/views/LiveEndViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveEndViewHolder.java index 0ed15d730..c4a4c2b1d 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveEndViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveEndViewHolder.java @@ -220,6 +220,26 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList } } + public void upData(String votes, String length, long nums) { + Log.e("收", votes + "votes" + length + "length" + nums + "nums"); + if (type == LiveOfType.USER) { + if (liveDurationUser != null) { + liveDurationUser.setText(length); + } + + } else { + if (liveDurationAnchor != null) { + liveDurationAnchor.setText(length); + } + if (liveVotes != null) { + liveVotes.setText(votes); + } + if (liveWatchNum != null) { + liveWatchNum.setText(StringUtil.toWan(nums)); + } + } + } + public void showData(LiveBean liveBean, final String stream) { if (TextUtils.equals(model.getId() + "", liveBean.getUid())) { type = LiveOfType.ANCHOR; @@ -331,7 +351,7 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList if (liveBean == null) { return; } - if(MicStatusManager.getInstance().isMic(liveUid)){ + if (MicStatusManager.getInstance().isMic(liveUid)) { MicStatusManager.getInstance().showDownMicDialog(mContext); return; }