修复:

直播间滑动导致画面卡顿问题
This commit is contained in:
18401019693 2022-08-31 09:11:30 +08:00
parent 11854ba95a
commit afc60eddfc
3 changed files with 34 additions and 8 deletions

View File

@ -109,6 +109,8 @@ public class LiveAudienceActivity extends LiveActivity {
private ViewGroup mViewGroup;
private int liveBg = 0;
//直播间进入房间队列
private Handler liveHandler = new Handler();
@Override
@ -246,13 +248,27 @@ public class LiveAudienceActivity extends LiveActivity {
private void loadData(ViewGroup viewGroup, int currentItem) {
mViewGroup = viewGroup;
mLastPosition = currentItem;
liveHandler.removeCallbacks(liveRunnable);
if (mCurrentPage > 0) {
liveHandler.postDelayed(liveRunnable, 800);
} else {
liveHandler.post(liveRunnable);
}
}
private Runnable liveRunnable = new Runnable() {
@Override
public void run() {
AnchorRecommendItemModel data = itemModelList.get(mCurrentPage);
//获取直播间状态
LiveHttpUtil.getLiveInfo(data.getUid(), liveInfo);
mLastPosition = currentItem;
}
};
/**
* 获取直播间状态

View File

@ -61,6 +61,7 @@ import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.RouteUtil;
@ -1082,7 +1083,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
ViewFlipper flipper = (ViewFlipper) findViewById(R.id.hour_rank_list);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DpUtil.dp2px(44), DpUtil.dp2px(16));
LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
textParams.leftMargin=DpUtil.dp2px(5);
textParams.leftMargin = DpUtil.dp2px(5);
API.get().pdLiveApi(mContext).getHourChartRank(mLiveUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
@ -2355,7 +2356,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
if (fastMsgRecyclerView == null) return;
RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams)
fastMsgRecyclerView.getLayoutParams();
params1.rightMargin = 400;
params1.rightMargin = DeviceUtils.getScreenWidth((Activity) mContext) / 3;
fastMsgRecyclerView.setLayoutParams(params1);
} else if ("stop_svga_new_user_gif".equals(str)) {
if (fastMsgRecyclerView == null) return;

View File

@ -83,6 +83,7 @@ import org.greenrobot.eventbus.EventBus;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executors;
import cn.rongcloud.rtc.api.RCRTCEngine;
import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
@ -166,6 +167,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
private LiveImDeletUtil liveImDeletUtil;
private List<String> greetings = new ArrayList<>();
public PortraitLiveManager(Activity context, Intent intent) {
this.mContext = context;
this.mIntent = intent;
@ -273,7 +275,8 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
@Override
public void onRemove() {
end();
endPlay();
Executors.newCachedThreadPool().execute(() -> end());
if (mLiveAudienceViewHolder != null) {
mLiveAudienceViewHolder.removeFromParent();
mLiveAudienceViewHolder.countDownTimerTrickery = null;
@ -545,6 +548,11 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
@Override
public void onChat(LiveChatBean bean, int index) {
if (bean.getType() == 1) {
if (!bean.getContent().contains(mLiveBean.getUserNiceName())) {
return;
}
}
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.insertChat(bean, index);
}
@ -1355,7 +1363,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
Log.i("tx", "退出失败");
}
});
endPlay();
} catch (Exception e) {
e.printStackTrace();
}
@ -1457,4 +1465,5 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
}
}