This commit is contained in:
18142669586
2022-07-20 15:18:42 +08:00
parent c7e03f576c
commit d150d8d599
20 changed files with 23 additions and 3181 deletions

View File

@@ -1 +1 @@
apply plugin: 'com.android.library'
apply plugin: 'com.android.library'

View File

@@ -20,7 +20,6 @@ import com.tencent.imsdk.v2.V2TIMManager;
import com.tencent.imsdk.v2.V2TIMMessage;
import com.tencent.imsdk.v2.V2TIMSendCallback;
import com.tencent.trtc.TRTCCloudDef;
import com.yunbao.beauty.interfaces.BeautyViewHolder;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
@@ -100,7 +99,6 @@ public class LiveAnchorActivity extends LiveActivity implements LiveFunctionClic
private ViewGroup mContainerWrap;
private AbsLivePushViewHolder mLivePushViewHolder;
public static LiveReadyViewHolder mLiveReadyViewHolder;
private BeautyViewHolder mLiveBeautyViewHolder;
private LiveAnchorViewHolder mLiveAnchorViewHolder;
private LiveMusicViewHolder mLiveMusicViewHolder;
private boolean mStartPreview;//是否开始预览
@@ -717,10 +715,7 @@ public class LiveAnchorActivity extends LiveActivity implements LiveFunctionClic
LivePushTxViewHolder.mTRTCCloud.stopLocalPreview();
}
if (mLiveBeautyViewHolder != null && mLiveBeautyViewHolder.isShowed()) {
mLiveBeautyViewHolder.hide();
return;
}
if (mLivePushViewHolder != null) {
mLivePushViewHolder.release();
}
@@ -782,10 +777,7 @@ public class LiveAnchorActivity extends LiveActivity implements LiveFunctionClic
if (LiveLinkMicPkPresenter.mTRTCCloud1 != null) {
LiveLinkMicPkPresenter.mTRTCCloud1.exitRoom();
}
if (mLiveBeautyViewHolder != null && mLiveBeautyViewHolder.isShowed()) {
mLiveBeautyViewHolder.hide();
return;
}
if (mLivePushViewHolder != null) {
mLivePushViewHolder.release();
}
@@ -849,9 +841,7 @@ public class LiveAnchorActivity extends LiveActivity implements LiveFunctionClic
if (mLiveLinkMicPresenter != null) {
mLiveLinkMicPresenter.release();
}
if (mLiveBeautyViewHolder != null) {
mLiveBeautyViewHolder.release();
}
// if (mGamePresenter != null) {
// mGamePresenter.release();
// }
@@ -859,8 +849,6 @@ public class LiveAnchorActivity extends LiveActivity implements LiveFunctionClic
mLiveReadyViewHolder = null;
mLivePushViewHolder = null;
mLiveLinkMicPresenter = null;
mLiveBeautyViewHolder = null;
// mGamePresenter = null;
super.release();
}

View File

@@ -19,7 +19,6 @@ import com.lzy.okgo.model.Response;
import com.lzy.okgo.request.base.Request;
import com.opensource.svgaplayer.SVGAImageView;
import com.tencent.trtc.TRTCCloudDef;
import com.yunbao.beauty.interfaces.BeautyViewHolder;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
@@ -120,7 +119,6 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
private ViewGroup mContainerWrap;
public static AbsRyLivePushViewHolder mLivePushViewHolder;
public static LiveReadyRyViewHolder mLiveReadyViewHolder;
private BeautyViewHolder mLiveBeautyViewHolder;
public static LiveRyAnchorViewHolder mLiveAnchorViewHolder;
private LiveMusicViewHolder mLiveMusicViewHolder;
private boolean mStartPreview;//是否开始预览
@@ -796,10 +794,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
});
if (mLiveBeautyViewHolder != null && mLiveBeautyViewHolder.isShowed()) {
mLiveBeautyViewHolder.hide();
return;
}
if (mLivePushViewHolder != null) {
mLivePushViewHolder.release();
}
@@ -866,10 +861,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
mLiveAnchorViewHolder.release();
mLiveAnchorViewHolder = null;
}
if (mLiveBeautyViewHolder != null && mLiveBeautyViewHolder.isShowed()) {
mLiveBeautyViewHolder.hide();
return;
}
if (mLivePushViewHolder != null) {
mLivePushViewHolder.release();
}
@@ -936,9 +928,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
if (mLiveLinkMicPresenter != null) {
mLiveLinkMicPresenter.release();
}
if (mLiveBeautyViewHolder != null) {
mLiveBeautyViewHolder.release();
}
// if (mGamePresenter != null) {
// mGamePresenter.release();
// }
@@ -946,7 +936,6 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
mLiveReadyViewHolder = null;
mLivePushViewHolder = null;
mLiveLinkMicPresenter = null;
mLiveBeautyViewHolder = null;
// mGamePresenter = null;
super.release();
}

View File

@@ -1,6 +1,5 @@
package com.yunbao.live.interfaces;
import com.yunbao.beauty.interfaces.BeautyEffectListener;
/**
* Created by cxf on 2018/12/22.
@@ -50,8 +49,5 @@ public interface ILivePushViewHolder extends ILiveLinkMicViewHolder {
*/
void stopBgm();
/**
* 获取美颜效果监听
*/
BeautyEffectListener getEffectListener();
}

View File

@@ -16,13 +16,6 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.tencent.rtmp.ui.TXCloudVideoView;
import com.yunbao.beauty.interfaces.Beauty360EffectListener;
import com.yunbao.beauty.interfaces.BeautyEffectListener;
import com.yunbao.beauty.interfaces.DefaultBeautyEffectListener;
import com.yunbao.beauty.interfaces.TiBeautyEffectListener;
import com.yunbao.beauty.views.Beauty360ViewHolder;
import com.yunbao.beauty.views.DefaultBeautyViewHolder;
import com.yunbao.beauty.views.TiBeautyViewHolder;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.utils.DpUtil;
@@ -34,11 +27,6 @@ import com.yunbao.live.interfaces.ILivePushViewHolder;
import com.yunbao.live.interfaces.LivePushListener;
import cn.qqtheme.framework.util.ScreenUtils;
import cn.tillusory.sdk.TiSDKManager;
import cn.tillusory.sdk.TiSDKManagerBuilder;
import cn.tillusory.sdk.bean.TiDistortionEnum;
import cn.tillusory.sdk.bean.TiFilterEnum;
import cn.tillusory.sdk.bean.TiRockEnum;
/**
* Created by cxf on 2018/12/22.
@@ -61,8 +49,7 @@ public abstract class AbsLivePushViewHolder extends AbsViewHolder implements ILi
public static ImageView leave;
public static TXCloudVideoView mPreView1;
protected boolean mOpenCamera;//是否选择了相机
protected BeautyEffectListener mEffectListener;//萌颜的效果监听
protected TiSDKManager mTiSDKManager;//萌颜效果控制器
//倒计时
protected TextView mCountDownText;
@@ -88,133 +75,17 @@ public abstract class AbsLivePushViewHolder extends AbsViewHolder implements ILi
// if (CommonAppConfig.getInstance().isTiBeautyEnable()) {
if ("2".equals(mBeautySdkType)) {
initBeauty();
mEffectListener = new TiBeautyEffectListener() {
@Override
public void onFilterChanged(TiFilterEnum tiFilterEnum) {
if (mTiSDKManager != null) {
mTiSDKManager.setFilterEnum(tiFilterEnum);
}
}
@Override
public void onMeiBaiChanged(int progress) {
if (mTiSDKManager != null) {
mTiSDKManager.setSkinWhitening(progress);
}
}
@Override
public void onMoPiChanged(int progress) {
if (mTiSDKManager != null) {
mTiSDKManager.setSkinBlemishRemoval(progress);
}
}
@Override
public void onBaoHeChanged(int progress) {
if (mTiSDKManager != null) {
mTiSDKManager.setSkinSaturation(progress);
}
}
@Override
public void onFengNenChanged(int progress) {
if (mTiSDKManager != null) {
mTiSDKManager.setSkinTenderness(progress);
}
}
@Override
public void onBigEyeChanged(int progress) {
if (mTiSDKManager != null) {
mTiSDKManager.setEyeMagnifying(progress);
}
}
@Override
public void onFaceChanged(int progress) {
if (mTiSDKManager != null) {
mTiSDKManager.setChinSlimming(progress);
}
}
@Override
public void onFaceNarrowing(int progress){
if (mTiSDKManager != null) {
mTiSDKManager.setFaceNarrowing(progress);
}
}
@Override
public void onTieZhiChanged(String tieZhiName) {
if (mTiSDKManager != null) {
mTiSDKManager.setSticker(tieZhiName);
}
}
@Override
public void onHaHaChanged(TiDistortionEnum tiDistortionEnum) {
if (mTiSDKManager != null) {
mTiSDKManager.setDistortionEnum(tiDistortionEnum);
}
}
@Override
public void onRockChanged(TiRockEnum tiRockEnum) {
if (mTiSDKManager != null) {
mTiSDKManager.setRockEnum(tiRockEnum);
}
}
};
}else if ("3".equals(mBeautySdkType)){
mEffectListener = getBeauty360EffectListener();
//todo 重设右边小窗口高度
int height= ScreenUtils.heightPixels(mContext);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)
mPkContainer.getLayoutParams();
params.height = height / 2 + DpUtil.dp2px(20);//布局文件中底部已经空出20
mPkContainer.setLayoutParams(params);
}
else {
mEffectListener = getDefaultEffectListener();
}
}
/**
* 初始化萌颜
*/
private void initBeauty() {
try {
mTiSDKManager = new TiSDKManagerBuilder().build();
mTiSDKManager.setBeautyEnable(true);
mTiSDKManager.setFaceTrimEnable(true);
ConfigBean configBean = CommonAppConfig.getInstance().getConfig();
if (configBean != null) {
mTiSDKManager.setSkinWhitening(configBean.getBeautyMeiBai());//美白
mTiSDKManager.setSkinBlemishRemoval(configBean.getBeautyMoPi());//磨皮
mTiSDKManager.setSkinSaturation(configBean.getBeautyBaoHe());//饱和
mTiSDKManager.setSkinTenderness(configBean.getBeautyFenNen());//粉嫩
mTiSDKManager.setEyeMagnifying(configBean.getBeautyBigEye());//大眼
mTiSDKManager.setChinSlimming(configBean.getBeautyFace());//瘦脸
} else {
mTiSDKManager.setSkinWhitening(0);//美白
mTiSDKManager.setSkinBlemishRemoval(0);//磨皮
mTiSDKManager.setSkinSaturation(0);//饱和
mTiSDKManager.setSkinTenderness(0);//粉嫩
mTiSDKManager.setEyeMagnifying(0);//大眼
mTiSDKManager.setChinSlimming(0);//瘦脸
}
mTiSDKManager.setSticker("");
mTiSDKManager.setFilterEnum(TiFilterEnum.NO_FILTER);
} catch (Exception e) {
mTiSDKManager = null;
ToastUtil.show(R.string.beauty_init_error);
}
}
/**
* 开播的时候 3 2 1倒计时
*/
@@ -283,16 +154,10 @@ public abstract class AbsLivePushViewHolder extends AbsViewHolder implements ILi
mLivePushListener = livePushListener;
}
@Override
public BeautyEffectListener getEffectListener() {
return mEffectListener;
}
protected abstract void onCameraRestart();
protected abstract DefaultBeautyEffectListener getDefaultEffectListener();
protected abstract Beauty360EffectListener getBeauty360EffectListener();
@Override
public void release() {
@@ -312,9 +177,7 @@ public abstract class AbsLivePushViewHolder extends AbsViewHolder implements ILi
@Override
public void onDestroy() {
if (mTiSDKManager != null) {
mTiSDKManager.destroy();
}
L.e(TAG, "LifeCycle------>onDestroy");
}

View File

@@ -11,10 +11,7 @@ import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.yunbao.beauty.interfaces.Beauty360EffectListener;
import com.yunbao.beauty.interfaces.BeautyEffectListener;
import com.yunbao.beauty.interfaces.DefaultBeautyEffectListener;
import com.yunbao.beauty.interfaces.TiBeautyEffectListener;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.utils.DpUtil;
@@ -26,11 +23,7 @@ import com.yunbao.live.interfaces.ILivePushViewHolder;
import com.yunbao.live.interfaces.LivePushListener;
import cn.qqtheme.framework.util.ScreenUtils;
import cn.tillusory.sdk.TiSDKManager;
import cn.tillusory.sdk.TiSDKManagerBuilder;
import cn.tillusory.sdk.bean.TiDistortionEnum;
import cn.tillusory.sdk.bean.TiFilterEnum;
import cn.tillusory.sdk.bean.TiRockEnum;
public class AbsRyLivePushViewHolder extends AbsViewHolder implements ILivePushViewHolder {
@@ -171,10 +164,6 @@ public class AbsRyLivePushViewHolder extends AbsViewHolder implements ILivePushV
}
@Override
public BeautyEffectListener getEffectListener() {
return null;
}
@Override
public void setLivePushListener(LivePushListener livePushListener) {

View File

@@ -27,8 +27,6 @@ import com.tencent.rtmp.ui.TXCloudVideoView;
import com.tencent.trtc.TRTCCloud;
import com.tencent.trtc.TRTCCloudDef;
import com.tencent.trtc.TRTCCloudListener;
import com.yunbao.beauty.interfaces.Beauty360EffectListener;
import com.yunbao.beauty.interfaces.DefaultBeautyEffectListener;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.UserBean;
@@ -525,15 +523,6 @@ public class LivePushTxViewHolder extends AbsLivePushViewHolder implements ITXLi
// }
}
@Override
protected DefaultBeautyEffectListener getDefaultEffectListener() {
return null;
}
@Override
protected Beauty360EffectListener getBeauty360EffectListener() {
return null;
}
@Override
public void release() {

View File

@@ -26,9 +26,6 @@ import com.tencent.rtmp.TXLiveConstants;
import com.tencent.rtmp.TXLivePushConfig;
import com.tencent.rtmp.TXLivePusher;
import com.tencent.rtmp.ui.TXCloudVideoView;
import com.yunbao.beauty.bean.FilterBean;
import com.yunbao.beauty.interfaces.Beauty360EffectListener;
import com.yunbao.beauty.interfaces.DefaultBeautyEffectListener;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
@@ -47,10 +44,7 @@ import java.io.File;
import cn.qqtheme.framework.util.FileUtils;
import cn.qqtheme.framework.util.ScreenUtils;
import cn.tillusory.sdk.bean.TiDistortionEnum;
import cn.tillusory.sdk.bean.TiRockEnum;
import cn.tillusory.sdk.bean.TiRotation;
import cn.tillusory.sdk.common.TiUtils;
//import static cn.jpush.im.android.api.jmrtc.JMRTCInternalUse.getApplicationContext;
@@ -156,9 +150,7 @@ public class LivePushTxViewHolder360Beauty extends AbsLivePushViewHolder impleme
mLivePusher.setVideoProcessListener(new TXLivePusher.VideoCustomProcessListener() {
@Override
public int onTextureCustomProcess(int i, int i1, int i2) {
if (mTiSDKManager != null) {
return mTiSDKManager.renderTexture2D(i, i1, i2, TiRotation.CLOCKWISE_ROTATION_0, false);
}
return 0;
}
@Override
@@ -216,7 +208,6 @@ public class LivePushTxViewHolder360Beauty extends AbsLivePushViewHolder impleme
//解压到贴纸目录
File targetDir = new File(CommonAppConfig.VIDEO_TIE_ZHI_PATH+CommonAppConfig.TIEZHI_360_NAME);
try {
TiUtils.unzip(file, targetDir);
}catch (Exception e){
// ToastUtil.show(WordUtil.getString(com.yunbao.beauty.R.string.tiezhi_unzip_failed));
}
@@ -262,153 +253,7 @@ public class LivePushTxViewHolder360Beauty extends AbsLivePushViewHolder impleme
}
// 360美颜回调
@Override
protected Beauty360EffectListener getBeauty360EffectListener() {
return new Beauty360EffectListener() {
@Override
public void onFilterChanged(String filtertype) {
//滤镜类型
// if ("none".equals(filtertype)){
// mPreviewUtils.SetColorFilterStrength(0);
// }
// else {
// mPreviewUtils.SetColorFilterByName(filtertype);
// }
}
@Override
public void onFilterStrength(int filterValue) {
//滤镜强度
// mPreviewUtils.SetColorFilterStrength(filterValue);
}
@Override
public void onMeiBaiChanged(int progress) {
mWhitenValue = progress / 100f;
// mPreviewUtils.SetSkinColor(mPinkValue, mWhitenValue, mReddenValue);
}
@Override
public void onSkinsoftStrengthChanged(int progress) {
mSoftenValue = progress;
// mPreviewUtils.SetSkinSoftenStrength(mSoftenValue);
}
@Override
public void onHongRunChanged(int progress) {
mReddenValue = progress / 100f;
// mPreviewUtils.SetSkinColor(mPinkValue, mWhitenValue, mReddenValue);
}
@Override
public void onFengNenChanged(int progress) {
mPinkValue = progress / 100f;
// mPreviewUtils.SetSkinColor(mPinkValue, mWhitenValue, mReddenValue);
}
@Override
public void onBigEyeChanged(int progress) {
mBigEyeStrength=progress;
// mPreviewUtils.setFaceShapingParam(mBigEyeStrength,mThinFaceStrength);
}
@Override
public void onFaceChanged(int progress) {
mThinFaceStrength=progress;
// mPreviewUtils.setFaceShapingParam(mBigEyeStrength,mThinFaceStrength);
}
@Override
public void onTieZhiChanged(String tieZhiName) {
//切换贴纸
if ("".equals(tieZhiName)) {
// mPreviewUtils.removeSticker();
}
else {
// mPreviewUtils.setSticker(CommonAppConfig.VIDEO_TIE_ZHI_PATH+CommonAppConfig.TIEZHI_360_NAME
// +File.separator + "StickerResource_20170502"+File.separator+tieZhiName);
}
}
@Override
public void onHaHaChanged(TiDistortionEnum tiDistortionEnum) {
}
@Override
public void onRockChanged(TiRockEnum tiRockEnum) {
}
@Override
public void onFaceNarrowing(int progress) {
}
};
}
@Override
public DefaultBeautyEffectListener getDefaultEffectListener() {
return new DefaultBeautyEffectListener() {
@Override
public void onFilterChanged(FilterBean bean) {
if (bean == null || mLivePusher == null) {
return;
}
if (mFilterBmp != null) {
mFilterBmp.recycle();
}
int filterSrc = bean.getFilterSrc();
if (filterSrc != 0) {
Bitmap bitmap = BitmapUtil.getInstance().decodeBitmap(filterSrc);
if (bitmap != null) {
mFilterBmp = bitmap;
mLivePusher.setFilter(bitmap);
} else {
mLivePusher.setFilter(null);
}
} else {
mLivePusher.setFilter(null);
}
}
@Override
public void onMeiBaiChanged(int progress) {
if (mLivePusher != null) {
int v = progress / 10;
if (mMeiBaiVal != v) {
mMeiBaiVal = v;
mLivePusher.setBeautyFilter(0, mMeiBaiVal, mMoPiVal, mHongRunVal);
}
}
}
@Override
public void onMoPiChanged(int progress) {
if (mLivePusher != null) {
int v = progress / 10;
if (mMoPiVal != v) {
mMoPiVal = v;
mLivePusher.setBeautyFilter(0, mMeiBaiVal, mMoPiVal, mHongRunVal);
}
}
}
@Override
public void onHongRunChanged(int progress) {
if (mLivePusher != null) {
int v = progress / 10;
if (mHongRunVal != v) {
mHongRunVal = v;
mLivePusher.setBeautyFilter(0, mMeiBaiVal, mMoPiVal, mHongRunVal);
}
}
}
};
}
@Override
public void changeToLeft() {