调整个人名片
@ -2,7 +2,7 @@ apply plugin: 'com.android.application'
|
||||
apply plugin: 'img-optimizer'
|
||||
apply plugin: 'com.google.gms.google-services'
|
||||
apply plugin: 'com.google.firebase.crashlytics'
|
||||
|
||||
apply plugin: 'com.alibaba.arouter'
|
||||
android {
|
||||
dexOptions {
|
||||
jumboMode = true
|
||||
|
@ -22,6 +22,7 @@ buildscript {
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.20"
|
||||
classpath 'com.google.gms:google-services:4.3.3'
|
||||
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
|
||||
classpath "com.alibaba:arouter-register:1.0.2"
|
||||
}
|
||||
|
||||
|
||||
|
@ -34,4 +34,29 @@ public class NobleUtil {
|
||||
}
|
||||
return "未开通";
|
||||
}
|
||||
public static int getNobleBackgroundId(int id){
|
||||
switch (id){
|
||||
case 1:return R.mipmap.img_aristocrat_nanjue;
|
||||
case 2:return R.mipmap.img_aristocrat_zijue;
|
||||
case 3:return R.mipmap.img_aristocrat_houjue;
|
||||
case 4:return R.mipmap.img_aristocrat_gongjue;
|
||||
case 5:return R.mipmap.img_aristocrat_guowang;
|
||||
case 6:return R.mipmap.img_aristocrat_huangdi;
|
||||
case 7:return R.mipmap.img_aristocrat_chaohuang;
|
||||
}
|
||||
return R.mipmap.img_aristocrat_notopen;
|
||||
}
|
||||
|
||||
public static int getUserCardTitleBackgroundId(int id) {
|
||||
switch (id){
|
||||
case 1:return R.drawable.bg_user_card_title_nanjue;
|
||||
case 2:return R.drawable.bg_user_card_title_zijue;
|
||||
case 3:return R.drawable.bg_user_card_title_houjue;
|
||||
case 4:return R.drawable.bg_user_card_title_gongjue;
|
||||
case 5:return R.drawable.bg_user_card_title_guowang;
|
||||
case 6:return R.drawable.bg_user_card_title_huangdi;
|
||||
case 7:return R.drawable.bg_user_card_title_chaohuang;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:width="375dp" android:height="93dp">
|
||||
<shape android:shape="rectangle">
|
||||
<gradient android:type="linear" android:useLevel="true" android:startColor="#ffffff" android:endColor="#F8C4C4" android:angle="90" />
|
||||
<corners android:topLeftRadius="16dp" android:topRightRadius="16dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:width="375dp" android:height="93dp">
|
||||
<shape android:shape="rectangle">
|
||||
<gradient android:type="linear" android:useLevel="true" android:startColor="#ffffff" android:endColor="#C4F8F6" android:angle="90" />
|
||||
<corners android:topLeftRadius="16dp" android:topRightRadius="16dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:width="375dp" android:height="93dp">
|
||||
<shape android:shape="rectangle">
|
||||
<gradient android:type="linear" android:useLevel="true" android:startColor="#ffffff" android:endColor="#F8E4C4" android:angle="90" />
|
||||
<corners android:topLeftRadius="16dp" android:topRightRadius="16dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:width="375dp" android:height="93dp">
|
||||
<shape android:shape="rectangle">
|
||||
<gradient android:type="linear" android:useLevel="true" android:startColor="#ffffff" android:endColor="#E2F6FF" android:angle="90" />
|
||||
<corners android:topLeftRadius="16dp" android:topRightRadius="16dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:width="375dp" android:height="93dp">
|
||||
<shape android:shape="rectangle">
|
||||
<gradient android:type="linear" android:useLevel="true" android:startColor="#ffffff" android:endColor="#F8CEC4" android:angle="90" />
|
||||
<corners android:topLeftRadius="16dp" android:topRightRadius="16dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:width="375dp" android:height="93dp">
|
||||
<shape android:shape="rectangle">
|
||||
<gradient android:type="linear" android:useLevel="true" android:startColor="#ffffff" android:endColor="#ffe9e2ff" android:angle="90" />
|
||||
<corners android:topLeftRadius="16dp" android:topRightRadius="16dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:width="375dp" android:height="93dp">
|
||||
<shape android:shape="rectangle">
|
||||
<gradient android:type="linear" android:useLevel="true" android:startColor="#ffffff" android:endColor="#E2FFF7" android:angle="90" />
|
||||
<corners android:topLeftRadius="16dp" android:topRightRadius="16dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
BIN
common/src/main/res/mipmap-xxhdpi/img_aristocrat_chaohuang.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
common/src/main/res/mipmap-xxhdpi/img_aristocrat_gongjue.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
common/src/main/res/mipmap-xxhdpi/img_aristocrat_guowang.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
common/src/main/res/mipmap-xxhdpi/img_aristocrat_houjue.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
common/src/main/res/mipmap-xxhdpi/img_aristocrat_huangdi.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
common/src/main/res/mipmap-xxhdpi/img_aristocrat_nanjue.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
common/src/main/res/mipmap-xxhdpi/img_aristocrat_notopen.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
common/src/main/res/mipmap-xxhdpi/img_aristocrat_zijue.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
common/src/main/res/mipmap-xxhdpi/img_fans_default.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
common/src/main/res/mipmap-xxhdpi/img_honor_default.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
@ -707,6 +707,7 @@
|
||||
<string name="live_user_level_anchor">主播等級</string>
|
||||
<string name="live_user_card_level">用户等級</string>
|
||||
<string name="live_noble_level_anchor">貴族等級</string>
|
||||
<string name="live_noble_fens_anchor">粉絲團</string>
|
||||
<string name="live_honor_number_anchor">榮譽墻</string>
|
||||
<string name="live_anchor_error">連接已斷開,請重新開播</string>
|
||||
<string name="search_no_data_2">空空如也</string>
|
||||
|
@ -98,7 +98,6 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
private String mToUid;
|
||||
private String mStream;
|
||||
private int mType;
|
||||
private int guardNumber;
|
||||
private TextView mFollowText;
|
||||
private TextView mName;
|
||||
private TextView mID;
|
||||
@ -112,6 +111,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
private TextView mGuard;
|
||||
private TextView mUnion;
|
||||
private TextView mHonorVal;
|
||||
private TextView mNobleTitleVal;
|
||||
private ImageView mFollowImage;
|
||||
private ImageView mSex;
|
||||
private ImageView good_nub_ico;
|
||||
@ -122,9 +122,13 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
private ImageView mAvatar;
|
||||
private ImageView shawl;
|
||||
private ImageView honorIcon;
|
||||
private ImageView mTitleBg;
|
||||
private UserBean mUserBean;
|
||||
private LinearLayout mGuardLayout;
|
||||
private LinearLayout mUnionLayout;
|
||||
private LinearLayout mNobleIconLayout;
|
||||
private LinearLayout mUserLevelLayout;
|
||||
private LinearLayout mHonorLayout;
|
||||
private boolean mFollowing;
|
||||
GifImageView btn_live;
|
||||
SVGAImageView gift_svga;
|
||||
@ -174,7 +178,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
getType();
|
||||
initView();
|
||||
initListener();
|
||||
initGuardList();
|
||||
//initGuardList();
|
||||
LayoutInflater inflater = LayoutInflater.from(mContext);
|
||||
View bottomView = null;
|
||||
if (mType == TYPE_AUD_ANC) {
|
||||
@ -233,6 +237,13 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
mUnionLayout = mRootView.findViewById(R.id.btn_union);
|
||||
mUnion = mRootView.findViewById(R.id.union_val);
|
||||
mHonorVal = mRootView.findViewById(R.id.honor_val);
|
||||
mUserLevelLayout = mRootView.findViewById(R.id.user_level_layout);
|
||||
mNobleIconLayout = mRootView.findViewById(R.id.noble_icon_layout);
|
||||
mNobleTitleVal = mRootView.findViewById(R.id.noble_title_val);
|
||||
mHonorLayout = mRootView.findViewById(R.id.honor_layout);
|
||||
mTitleBg = mRootView.findViewById(R.id.title_bg);
|
||||
mHonorLayout.setOnClickListener(v -> forwardHomePage());
|
||||
|
||||
}
|
||||
|
||||
private void initListener() {
|
||||
@ -245,6 +256,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
mAvatar.setOnClickListener(this);
|
||||
mReport.setOnClickListener(this);
|
||||
mGuardLayout.setOnClickListener(this);
|
||||
btn_live.setOnClickListener(this);
|
||||
}
|
||||
|
||||
private void loadData() {
|
||||
@ -296,6 +308,11 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
mUnionLayout.setVisibility(View.VISIBLE);
|
||||
}
|
||||
mNoble.setVisibility(View.GONE);
|
||||
mUserLevelLayout.setBackgroundResource(R.drawable.bg_user_card_lv);
|
||||
mNobleTitleVal.setText(R.string.live_noble_fens_anchor);
|
||||
mNobleIconLayout.setBackgroundResource(R.drawable.bg_user_card_fans);
|
||||
} else {
|
||||
mUserLevelLayout.setBackgroundResource(R.drawable.bg_user_card_au_lv);
|
||||
}
|
||||
mName.setText(obj.getString("user_nicename"));
|
||||
if (mUserBean.getGoodnum() != null && !mUserBean.getGoodnum().equals("")) {
|
||||
@ -334,11 +351,18 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
} else {
|
||||
mNoble.setVisibility(View.GONE);
|
||||
}
|
||||
mGuard.setText(String.format(mGuard.getText().toString(), guardNumber));
|
||||
mGuard.setText(String.format(mGuard.getText().toString(), obj.getInteger("guard_num")));
|
||||
mFansVal.setText(WordUtil.getString(R.string.fans) + ":" + mUserBean.getFans());
|
||||
mPraise.setText(WordUtil.getString(R.string.praise) + ":" + obj.getInteger("user_love_num"));
|
||||
mSignDesc.setText(mUserBean.getSignature());
|
||||
if (isAnchor) {
|
||||
mNobleVal.setText("" + obj.getInteger("level_fans_num"));
|
||||
} else {
|
||||
mNobleVal.setText(NobleUtil.nobleIdToStringName(Integer.parseInt(mUserBean.getNoble_id())));
|
||||
if (obj.getInteger("noble_id") != 0) {
|
||||
mTitleBg.setBackgroundResource(NobleUtil.getUserCardTitleBackgroundId(obj.getInteger("noble_id")));
|
||||
}
|
||||
}
|
||||
ImgLoader.displayAvatar(mContext, obj.getString("avatar"), mAvatar);
|
||||
JSONObject dress = obj.getJSONObject("dress");
|
||||
|
||||
@ -348,7 +372,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
} else {
|
||||
mLiveIcon2.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
if (dress.containsKey("medal")) {
|
||||
if (dress.containsKey("medal") && !isAnchor) {
|
||||
JSONObject item = null;
|
||||
for (Object medal : dress.getJSONArray("medal")) {
|
||||
JSONObject _item = (JSONObject) medal;
|
||||
@ -359,20 +383,22 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
}
|
||||
if (item != null) {
|
||||
String url = item.getString("display_src");
|
||||
if (item.containsKey("noble_medal") && !isAnchor) {
|
||||
if (item.containsKey("noble_medal")) {
|
||||
mNoble.setVisibility(View.VISIBLE);
|
||||
ImgLoader.display(mContext, item.getString("noble_medal"), mNoble);
|
||||
}
|
||||
if (url != null) {
|
||||
url = url.replace("qny.shayucm.com", "downs.yaoulive.com");
|
||||
try {
|
||||
mNobleIconLayout.setBackgroundResource(NobleUtil.getNobleBackgroundId(obj.getInteger("noble_id")));
|
||||
} catch (Exception e) {
|
||||
mNobleIconLayout.setBackgroundResource(NobleUtil.getNobleBackgroundId(0));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mNobleIconLayout.setVisibility(View.VISIBLE);
|
||||
mNobleIcon.setVisibility(View.VISIBLE);
|
||||
ImgLoader.display(mContext, url, mNobleIcon);
|
||||
} else {
|
||||
mNobleIcon.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mNobleIcon.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
if (dress.containsKey("medal_no")) {
|
||||
JSONObject item = null;
|
||||
@ -380,11 +406,8 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
item = dress.getJSONArray("medal_no").getJSONObject(0);
|
||||
String url = item.getString("display_src");
|
||||
url = url.replace("qny.shayucm.com", "downs.yaoulive.com");
|
||||
honorIcon.setVisibility(View.VISIBLE);
|
||||
ImgLoader.display(mContext, url, honorIcon);
|
||||
}
|
||||
} else {
|
||||
honorIcon.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
mFollowing = obj.getIntValue("isattention") == 1;
|
||||
@ -393,6 +416,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
|
||||
if (dress.getJSONArray("wraps").size() >= 1) {
|
||||
JSONObject display = (JSONObject) dress.getJSONArray("wraps").get(0);
|
||||
shawl.setTag("test");
|
||||
ImgLoader.display(mContext, display.getString("display_src"), shawl);
|
||||
}
|
||||
if (dress.getJSONArray("avatar_frame").size() == 1) {
|
||||
@ -504,18 +528,78 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
LiveReportActivity.forward(mContext, mToUid);
|
||||
}
|
||||
|
||||
private void initGuardList() {
|
||||
LiveHttpUtil.getGuardList(mLiveUid, 1, new HttpCallback() {
|
||||
|
||||
private void gotoLive(String live_id) {
|
||||
DialogUitl.showSimpleDialog(mContext, "是否確認前往對方直播間?", new DialogUitl.SimpleCallback() {
|
||||
@Override
|
||||
public void onConfirmClick(Dialog dialog, String content) {
|
||||
RongChatRoomClient.getInstance().quitChatRoom("g" + mLiveUid, new IRongCoreCallback.OperationCallback() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
Log.i("tx", "退出成功");
|
||||
//连接socket
|
||||
LiveHttpUtil.qBackRoom(mLiveUid, mStream, new HttpCallback() {
|
||||
@Override
|
||||
public void onSuccess(int code, String msg, String[] info) {
|
||||
List<GuardUserBean> list = JSON.parseArray(Arrays.toString(info), GuardUserBean.class);
|
||||
if (list != null) {
|
||||
guardNumber = list.size();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(IRongCoreEnum.CoreErrorCode coreErrorCode) {
|
||||
|
||||
}
|
||||
});
|
||||
V2TIMManager.getInstance().quitGroup("g" + mLiveUid, new V2TIMCallback() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
|
||||
Log.i("tx", "退出成功" + mLiveUid);
|
||||
//连接socket
|
||||
LiveHttpUtil.qBackRoom(mLiveUid, mStream, new HttpCallback() {
|
||||
@Override
|
||||
public void onSuccess(int code, String msg, String[] info) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(int code, String desc) {
|
||||
Log.i("tx", "退出失败");
|
||||
}
|
||||
});
|
||||
LiveHttpUtil.getLiveInfo(live_id, new HttpCallback() {
|
||||
@Override
|
||||
public void onSuccess(int code, String msg, String[] info) {
|
||||
if (code == 0 && info.length > 0) {
|
||||
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
|
||||
|
||||
if (mCheckLivePresenter == null) {
|
||||
mCheckLivePresenter = new LiveRoomCheckLivePresenter(mContext, new LiveRoomCheckLivePresenter.ActionListener() {
|
||||
@Override
|
||||
public void onLiveRoomChanged(LiveBean liveBean, int liveType, int liveTypeVal, int liveSdk) {
|
||||
if (liveBean == null) {
|
||||
return;
|
||||
}
|
||||
LiveRoomViewHolder.mHandler.removeCallbacksAndMessages(null);
|
||||
dismiss();
|
||||
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, liveTypeVal));
|
||||
}
|
||||
});
|
||||
}
|
||||
mCheckLivePresenter.checkLive(liveBean);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int i = v.getId();
|
||||
@ -529,6 +613,8 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
|
||||
forwardHomePage();
|
||||
} else if (i == R.id.btn_guard) {
|
||||
((LiveActivity) mContext).openNewGuardListWindow(mContext instanceof LiveRyAnchorActivity);
|
||||
} else if (i == R.id.btn_live) {
|
||||
gotoLive(mToUid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,13 @@
|
||||
package com.yunbao.live.views;
|
||||
|
||||
import android.app.Activity;
|
||||
import static com.lzy.okgo.utils.HttpUtils.runOnUiThread;
|
||||
import static com.yunbao.common.Constants.SOCKET_LIVE_DRPK;
|
||||
import static com.yunbao.live.activity.LiveActivity.mLiveRyLinkMicPkPresenter;
|
||||
import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.inputStreamList;
|
||||
import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.inputStreamList1;
|
||||
import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.leaveDRRoom;
|
||||
import static cn.rongcloud.rtc.base.RCRTCLiveRole.BROADCASTER;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
@ -39,7 +46,6 @@ import com.yunbao.live.http.LiveHttpConsts;
|
||||
import com.yunbao.live.http.LiveHttpUtil;
|
||||
import com.yunbao.live.momo.TencentTRTCBeautyManager;
|
||||
import com.yunbao.live.presenter.LiveRyLinkMicPkPresenter;
|
||||
import com.yunbao.live.socket.SocketRyLinkMicPkUtil;
|
||||
import com.yunbao.live.socket.SocketSendBean;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -48,38 +54,22 @@ import java.util.List;
|
||||
import cn.rongcloud.rtc.api.RCRTCConfig;
|
||||
import cn.rongcloud.rtc.api.RCRTCEngine;
|
||||
import cn.rongcloud.rtc.api.RCRTCMixConfig;
|
||||
import cn.rongcloud.rtc.api.RCRTCOtherRoom;
|
||||
import cn.rongcloud.rtc.api.RCRTCRemoteUser;
|
||||
import cn.rongcloud.rtc.api.RCRTCRoom;
|
||||
import cn.rongcloud.rtc.api.RCRTCRoomConfig;
|
||||
import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
|
||||
import cn.rongcloud.rtc.api.callback.IRCRTCResultDataCallback;
|
||||
import cn.rongcloud.rtc.api.callback.IRCRTCRoomEventsListener;
|
||||
import cn.rongcloud.rtc.api.callback.IRCRTCVideoOutputFrameListener;
|
||||
import cn.rongcloud.rtc.api.stream.RCRTCInputStream;
|
||||
import cn.rongcloud.rtc.api.stream.RCRTCLiveInfo;
|
||||
import cn.rongcloud.rtc.api.stream.RCRTCVideoInputStream;
|
||||
import cn.rongcloud.rtc.api.stream.RCRTCVideoStreamConfig;
|
||||
import cn.rongcloud.rtc.api.stream.RCRTCVideoView;
|
||||
import cn.rongcloud.rtc.base.RCRTCMediaType;
|
||||
import cn.rongcloud.rtc.base.RCRTCParamsType;
|
||||
import cn.rongcloud.rtc.base.RCRTCRoomType;
|
||||
import cn.rongcloud.rtc.base.RCRTCStream;
|
||||
import cn.rongcloud.rtc.base.RCRTCVideoFrame;
|
||||
import cn.rongcloud.rtc.base.RTCErrorCode;
|
||||
import cn.rongcloud.rtc.core.CameraVideoCapturer;
|
||||
import cn.rongcloud.rtc.core.RendererCommon;
|
||||
|
||||
import static cn.rongcloud.rtc.base.RCRTCLiveRole.BROADCASTER;
|
||||
import static cn.rongcloud.rtc.core.RendererCommon.ScalingType.SCALE_ASPECT_FILL;
|
||||
import static com.lzy.okgo.utils.HttpUtils.runOnUiThread;
|
||||
import static com.yunbao.common.Constants.SOCKET_LIVE_DRPK;
|
||||
import static com.yunbao.live.activity.LiveActivity.mLiveRyLinkMicPkPresenter;
|
||||
import static com.yunbao.live.activity.LiveRyAnchorActivity.mLivePushViewHolder;
|
||||
import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.inputStreamList;
|
||||
import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.inputStreamList1;
|
||||
import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.leaveDRRoom;
|
||||
|
||||
/**
|
||||
* Created by cxf on 2018/10/7.
|
||||
* 腾讯云直播推流
|
||||
@ -200,7 +190,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
|
||||
if (mLiveRyLinkMicPkPresenter != null) {
|
||||
mLiveRyLinkMicPkPresenter.onLinkDRMicPkApply(userBean);
|
||||
} else {
|
||||
mLiveRyLinkMicPkPresenter = new LiveRyLinkMicPkPresenter(mContext, mLivePushViewHolder, true, liveActivityContainer);
|
||||
mLiveRyLinkMicPkPresenter = new LiveRyLinkMicPkPresenter(mContext, LivePushRyViewHolder.this, true, liveActivityContainer);
|
||||
mLiveRyLinkMicPkPresenter.onLinkDRMicPkApply(userBean);
|
||||
}
|
||||
} else if (extra.equals("LiveDRPK1")) {
|
||||
@ -504,7 +494,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
|
||||
|
||||
RCRTCVideoStreamConfig videoConfigBuilder = RCRTCVideoStreamConfig.Builder.create()
|
||||
//设置分辨率
|
||||
.setVideoResolution(RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_480_720)
|
||||
.setVideoResolution(RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_480_640)
|
||||
//设置帧率
|
||||
.setVideoFps(RCRTCParamsType.RCRTCVideoFps.Fps_30)
|
||||
//设置最小码率,480P下推荐200
|
||||
@ -519,9 +509,20 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
|
||||
RCRTCVideoView rongRTCVideoView = new RCRTCVideoView(contexts);
|
||||
rongRTCVideoView.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FILL);
|
||||
RCRTCEngine.getInstance().getDefaultVideoStream().setVideoView(rongRTCVideoView);
|
||||
RCRTCEngine.getInstance().getDefaultVideoStream().startCamera(null);
|
||||
RCRTCEngine.getInstance().getDefaultVideoStream().startCamera(new IRCRTCResultDataCallback<Boolean>() {
|
||||
@Override
|
||||
public void onSuccess(Boolean data) {
|
||||
//设置摄像头最大缩放比例
|
||||
RCRTCEngine.getInstance().getDefaultVideoStream().setCameraZoomFactor(RCRTCEngine.getInstance().getDefaultVideoStream().getCameraMaxZoomFactor());
|
||||
boolean zoom = RCRTCEngine.getInstance().getDefaultVideoStream().setCameraZoomFactor(1.0f);
|
||||
// ToastUtil.show("设置比例="+zoom);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(RTCErrorCode errorCode) {
|
||||
}
|
||||
});
|
||||
//设置摄像头最大缩放比例
|
||||
// RCRTCEngine.getInstance().getDefaultVideoStream().setCameraZoomFactor(RCRTCEngine.getInstance().getDefaultVideoStream().getCameraMaxZoomFactor());
|
||||
mPreView.addView(rongRTCVideoView);
|
||||
tencentTRTCBeautyManager = new TencentTRTCBeautyManager(mContext);
|
||||
|
||||
|
9
live/src/main/res/drawable/bg_user_card_au_lv.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:width="112dp" android:height="56dp">
|
||||
<shape android:shape="rectangle">
|
||||
<gradient android:type="linear" android:useLevel="true" android:startColor="#ff95b6ff" android:endColor="#ff69adfe" android:angle="90" />
|
||||
<corners android:radius="6dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
@ -11,6 +11,14 @@
|
||||
android:layout_marginTop="52dp"
|
||||
android:background="@drawable/bg_live_user">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/title_bg"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="93dp"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btn_report"
|
||||
@ -137,7 +145,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="17dp"
|
||||
android:layout_marginTop="13dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
@ -329,6 +337,7 @@
|
||||
android:visibility="visible">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/user_level_layout"
|
||||
android:layout_width="112dp"
|
||||
android:layout_height="56dp"
|
||||
android:background="@drawable/bg_user_card_lv"
|
||||
@ -338,8 +347,8 @@
|
||||
android:id="@+id/live_icon"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:visibility="visible"
|
||||
android:src="@mipmap/icon_chat_face" />
|
||||
android:src="@mipmap/icon_chat_face"
|
||||
android:visibility="visible" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
@ -367,19 +376,20 @@
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/noble_icon_layout"
|
||||
android:layout_width="112dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:background="@drawable/bg_user_card_fans"
|
||||
android:background="@mipmap/img_aristocrat_notopen"
|
||||
android:gravity="center">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/noble_icon"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:visibility="visible"
|
||||
android:src="@mipmap/icon_chat_face" />
|
||||
android:src="@mipmap/img_fans_default"
|
||||
android:visibility="invisible" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
@ -388,6 +398,7 @@
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/noble_title_val"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/live_noble_level_anchor"
|
||||
@ -406,6 +417,7 @@
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/honor_layout"
|
||||
android:layout_width="112dp"
|
||||
android:layout_height="56dp"
|
||||
android:background="@drawable/bg_user_card_honor"
|
||||
@ -415,8 +427,8 @@
|
||||
android:id="@+id/honor_icon"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:visibility="visible"
|
||||
android:src="@mipmap/icon_chat_face"/>
|
||||
android:src="@mipmap/img_honor_default"
|
||||
android:visibility="visible" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
@ -447,9 +459,9 @@
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/bottom_container"
|
||||
android:layout_marginTop="13dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="13dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|