From 8eae2c29aeadf52351be9f3f46b083060a65a8fe Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Wed, 9 Nov 2022 15:09:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E7=9B=B4=E6=92=AD?= =?UTF-8?q?=E5=87=86=E5=A4=87=E9=A1=B5=E9=9D=A2=E5=88=87=E6=8D=A2=E6=91=84?= =?UTF-8?q?=E5=83=8F=E5=A4=B4=E5=8F=AF=E8=83=BD=E5=A4=B1=E6=95=88=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20=E4=BF=AE=E5=A4=8D=EF=BC=9A=E7=9B=B4=E6=92=AD?= =?UTF-8?q?=E5=87=86=E5=A4=87=E9=A1=B5=E9=9D=A2=E7=BE=8E=E9=A2=9C-?= =?UTF-8?q?=E7=BE=8E=E8=82=A4=E5=8F=AF=E8=83=BD=E6=97=A0=E6=95=88=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../live/activity/LiveRyAnchorActivity.java | 32 +++++++++++- .../live/adapter/LiveFunctionAdapter.java | 17 ++----- .../yunbao/live/socket/SocketRyClient.java | 12 ++++- .../live/views/LiveNewReadyRyViewHolder.java | 51 +++++++++---------- .../yunbao/live/views/LiveRoomViewHolder.java | 12 ++--- 5 files changed, 74 insertions(+), 50 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 d271dea2d..64f97f8a3 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java @@ -19,6 +19,7 @@ import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; +import android.view.KeyEvent; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; @@ -57,6 +58,7 @@ import com.yunbao.common.utils.LogUtil; import com.yunbao.common.utils.ScreenDimenUtil; import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.WordUtil; +import com.yunbao.faceunity.FaceManager; import com.yunbao.live.R; import com.yunbao.live.bean.LiveGuardInfo; import com.yunbao.live.bean.LiveKsyConfigBean; @@ -121,7 +123,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl private ViewGroup mRoot; private ViewGroup mContainerWrap; - public static LivePushRyViewHolder mLivePushViewHolder; + public LivePushRyViewHolder mLivePushViewHolder; public LiveNewReadyRyViewHolder mLiveReadyViewHolder; public static LiveRyAnchorViewHolder mLiveAnchorViewHolder; private LiveMusicViewHolder mLiveMusicViewHolder; @@ -139,6 +141,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl public static boolean PKing = false; public static int pk_nub; public static int backIndex = 0;//0=未判断,1=已判断 + private FaceManager manager; @Override @@ -151,6 +154,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl super.main(); Bus.getOn(this); Intent intent = getIntent(); + initFaceManager(); mLiveSDK = intent.getIntExtra(Constants.LIVE_SDK, Constants.LIVE_SDK_KSY); mLiveKsyConfigBean = intent.getParcelableExtra(Constants.LIVE_KSY_CONFIG); L.e(TAG, "直播sdk----->" + (mLiveSDK == Constants.LIVE_SDK_KSY ? "金山云" : "腾讯云")); @@ -177,8 +181,10 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl mContainer = (ViewGroup) findViewById(R.id.container); mLiveRyLinkMicPkPresenter = new LiveRyLinkMicPkPresenter(mContext, mLivePushViewHolder, true, mContainer); + //添加开播前设置控件 mLiveReadyViewHolder = new LiveNewReadyRyViewHolder(mContext, mContainer, mLiveSDK); + mLiveReadyViewHolder.setManager(manager); mLiveReadyViewHolder.addToParent(); mLiveReadyViewHolder.subscribeActivityLifeCycle(); mLiveLinkMicPresenter = new LiveLinkMicPresenter(mContext, mLivePushViewHolder, true, mLiveSDK, mContainer); @@ -208,6 +214,12 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl } + private void initFaceManager() { + manager = new FaceManager(); + manager.initFURender(mContext); + manager.drawRongFrame(mContext); + } + public boolean isStartPreview() { return mStartPreview; } @@ -584,6 +596,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl mLiveReadyViewHolder = null; if (mLiveRoomViewHolder == null) { mLiveRoomViewHolder = new LiveRoomViewHolder(true, 2, mContext, mContainer, (GifImageView) findViewById(R.id.gift_gif), (SVGAImageView) findViewById(R.id.gift_svga), mContainerWrap, getWindowManager()); + mLiveRoomViewHolder.setManager(manager); mLiveRoomViewHolder.addToParent(); mLiveRoomViewHolder.subscribeActivityLifeCycle(); mLiveRoomViewHolder.setLiveInfo(mLiveUid, mStream, obj.getIntValue("userlist_time") * 1000); @@ -609,6 +622,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl } mLiveBottomViewHolder = mLiveAnchorViewHolder; mSocketRyClient = new SocketRyClient(mLiveUid, this); + mSocketRyClient.setLivePushRyViewHolder(mLivePushViewHolder); CommonAppContext.Ingroup = 1; if (mLiveLinkMicPresenter != null) { @@ -837,9 +851,21 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl } super.release(); } + private boolean isKeyBack=false; + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + if(keyCode==KeyEvent.KEYCODE_BACK){ + isKeyBack=true; + finish(); + } + return super.onKeyUp(keyCode, event); + } @Override protected void onDestroy() { + if (manager != null) { + manager.release(); + } LiveHttpUtil.cancel(LiveHttpConsts.ANCHOR_CHECK_LIVE); super.onDestroy(); if (mLivePushViewHolder != null) { @@ -865,7 +891,9 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl mLiveRoomViewHolder.anchorPause(); } super.onPause(); - sendSystemMessage(WordUtil.getString(R.string.live_anchor_leave)); + if(isKeyBack) { + sendSystemMessage(WordUtil.getString(R.string.live_anchor_leave)); + } mPaused = true; } diff --git a/live/src/main/java/com/yunbao/live/adapter/LiveFunctionAdapter.java b/live/src/main/java/com/yunbao/live/adapter/LiveFunctionAdapter.java index bf77e19d5..338c84bb9 100644 --- a/live/src/main/java/com/yunbao/live/adapter/LiveFunctionAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/LiveFunctionAdapter.java @@ -43,19 +43,10 @@ public class LiveFunctionAdapter extends RecyclerView.Adapter { - if (num == 0) { - faceTextView.setVisibility(View.VISIBLE); - } else { - faceTextView.setVisibility(View.GONE); - } - }); - } - }); - //新美颜 - manager.initFURender(mContext); - manager.drawRongFrame(mContext); - setFaceUnity(true); + @Override + public void onFaceChanged(int num) { + handler.post(() -> { + if (num == 0) { + faceTextView.setVisibility(View.VISIBLE); + } else { + faceTextView.setVisibility(View.GONE); + } + }); + } + }); + //新美颜 + setFaceUnity(true); + } } + public void setManager(FaceManager manager) { + this.manager = manager; + } @Override public void onClick(View v) { @@ -229,7 +231,7 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl if (mContext instanceof LiveRyAnchorActivity) { fragment.show(((LiveRyAnchorActivity) mContext).getSupportFragmentManager(), "FaceUnity"); mRootView.setVisibility(View.INVISIBLE); - if(init){ + if (init) { fragment.dismiss(); } } @@ -341,8 +343,8 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl */ private void beauty() { ((LiveRyAnchorActivity) mContext).beauty(); - // Intent intent = new Intent(mContext, Beauty360Activity3.class); - // mContext.startActivity(intent); + // Intent intent = new Intent(mContext, Beauty360Activity3.class); + // mContext.startActivity(intent); } @@ -524,8 +526,5 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl @Override public void onDestroy() { LiveHttpUtil.cancel(LiveHttpConsts.CREATE_ROOM); - if(manager!=null) { - manager.release(); - } } } 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 9881fcb9a..815b1caa3 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -2857,19 +2857,15 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis mChatRecyclerView.setLayoutParams(params1); } + public void setManager(FaceManager manager) { + this.manager = manager; + } + /** * 启动美颜SDK */ public void startFace() { - manager = new FaceManager(); - manager.setFaceStatusChanged(new FaceManager.FaceStatusChanged() { - @Override - public void onFaceChanged(int num) { - } - }); - manager.initFURender(mContext); - manager.drawRongFrame(mContext); } /**