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

@ -47,8 +47,6 @@
<uses-permission <uses-permission
android:name="android.permission.MODIFY_AUDIO_SETTINGS" android:name="android.permission.MODIFY_AUDIO_SETTINGS"
tools:node="remove" /> tools:node="remove" />
<uses-permission
android:name="android.permission.QUERY_ALL_PACKAGES"/>
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

View File

@ -154,7 +154,7 @@ dependencies {
// 5.1.2 // 5.1.2
api 'cn.rongcloud.sdk:im_lib:5.2.0.2' api 'cn.rongcloud.sdk:im_lib:5.2.0.2'
api 'com.facebook.android:facebook-login:6.5.0' api 'com.facebook.android:facebook-login:8.2.0'
api 'com.facebook.android:facebook-android-sdk:[5,6)' api 'com.facebook.android:facebook-android-sdk:[5,6)'
api('com.twitter.sdk.android:twitter-core:3.1.1@aar') { api('com.twitter.sdk.android:twitter-core:3.1.1@aar') {

View File

@ -1 +1 @@
apply plugin: 'com.android.library' apply plugin: 'img-optimizer' apply plugin: 'kotlin-android' android { compileSdkVersion rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false packagingOptions { pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/armeabi-v7a/libyuvutils.so" pickFirst "lib/armeabi/libyuvtools.so" pickFirst "lib/arm64-v8a/libyuvtools.so" pickFirst "lib/armeabi-v7a/libyuvtools.so" exclude "lib/arm64-v8a/libmmcv_api_handgesture.so" exclude "lib/arm64-v8a/libmmcv_api_express.so" exclude "lib/arm64-v8a/libMediaEncoder.so" exclude "lib/arm64-v8a/libarcore_sdk_c.so" exclude "lib/arm64-v8a/libmediadecoder.so" exclude "lib/arm64-v8a/libMediaMuxer.so" exclude "lib/arm64-v8a/libarcore_sdk_jni.so" exclude "lib/arm64-v8a/libMediaUtils.so" exclude "lib/arm64-v8a/libcosmosffmpeg.so" } defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion versionCode rootProject.ext.android.versionCode versionName rootProject.ext.android.versionName manifestPlaceholders = rootProject.ext.manifestPlaceholders ndk { abiFilters "armeabi-v7a", "arm64-v8a" } javaCompileOptions { annotationProcessorOptions { arguments = [AROUTER_MODULE_NAME: project.getName()] } } } aaptOptions { cruncherEnabled = false useNewCruncher = false } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } kotlinOptions { allWarningsAsErrors = true } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } repositories { flatDir { dirs 'libs', '../libs' } mavenCentral() } dependencies { implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) //socket.io implementation('io.socket:socket.io-client:1.0.0') { exclude group: 'org.json', module: 'json' } //common implementation project(path: ':common') annotationProcessor rootProject.ext.dependencies["arouter-compiler"] //萌颜 implementation project(path: ':beauty') //工具 api rootProject.ext.dependencies["blank-utilcode"] implementation 'com.eightbitlab:blurview:1.6.6' implementation files('libs/beautysdk-202202241203.aar') implementation 'com.google.code.gson:gson:2.8.6' implementation "com.getkeepsafe.relinker:relinker:1.4.4" } apply plugin: 'com.android.library' apply plugin: 'img-optimizer' apply plugin: 'kotlin-android' android { compileSdkVersion rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false packagingOptions { pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/armeabi-v7a/libyuvutils.so" pickFirst "lib/armeabi/libyuvtools.so" pickFirst "lib/arm64-v8a/libyuvtools.so" pickFirst "lib/armeabi-v7a/libyuvtools.so" exclude "lib/arm64-v8a/libmmcv_api_handgesture.so" exclude "lib/arm64-v8a/libmmcv_api_express.so" exclude "lib/arm64-v8a/libMediaEncoder.so" exclude "lib/arm64-v8a/libarcore_sdk_c.so" exclude "lib/arm64-v8a/libmediadecoder.so" exclude "lib/arm64-v8a/libMediaMuxer.so" exclude "lib/arm64-v8a/libarcore_sdk_jni.so" exclude "lib/arm64-v8a/libMediaUtils.so" exclude "lib/arm64-v8a/libcosmosffmpeg.so" } defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion versionCode rootProject.ext.android.versionCode versionName rootProject.ext.android.versionName manifestPlaceholders = rootProject.ext.manifestPlaceholders ndk { abiFilters "armeabi-v7a", "arm64-v8a" } javaCompileOptions { annotationProcessorOptions { arguments = [AROUTER_MODULE_NAME: project.getName()] } } } aaptOptions { cruncherEnabled = false useNewCruncher = false } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } kotlinOptions { allWarningsAsErrors = true } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } repositories { flatDir { dirs 'libs', '../libs' } mavenCentral() } dependencies { implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) //socket.io implementation('io.socket:socket.io-client:1.0.0') { exclude group: 'org.json', module: 'json' } //common implementation project(path: ':common') annotationProcessor rootProject.ext.dependencies["arouter-compiler"] //工具 api rootProject.ext.dependencies["blank-utilcode"] implementation 'com.eightbitlab:blurview:1.6.6' implementation files('libs/beautysdk-202202241203.aar') implementation 'com.google.code.gson:gson:2.8.6' implementation "com.getkeepsafe.relinker:relinker:1.4.4" }

View File

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

View File

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

View File

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

View File

@ -16,13 +16,6 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.tencent.rtmp.ui.TXCloudVideoView; 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.CommonAppConfig;
import com.yunbao.common.bean.ConfigBean; import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.DpUtil;
@ -34,11 +27,6 @@ import com.yunbao.live.interfaces.ILivePushViewHolder;
import com.yunbao.live.interfaces.LivePushListener; import com.yunbao.live.interfaces.LivePushListener;
import cn.qqtheme.framework.util.ScreenUtils; 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. * 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 ImageView leave;
public static TXCloudVideoView mPreView1; public static TXCloudVideoView mPreView1;
protected boolean mOpenCamera;//是否选择了相机 protected boolean mOpenCamera;//是否选择了相机
protected BeautyEffectListener mEffectListener;//萌颜的效果监听
protected TiSDKManager mTiSDKManager;//萌颜效果控制器
//倒计时 //倒计时
protected TextView mCountDownText; protected TextView mCountDownText;
@ -88,133 +75,17 @@ public abstract class AbsLivePushViewHolder extends AbsViewHolder implements ILi
// if (CommonAppConfig.getInstance().isTiBeautyEnable()) { // if (CommonAppConfig.getInstance().isTiBeautyEnable()) {
if ("2".equals(mBeautySdkType)) { 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)){ }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 { 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倒计时 * 开播的时候 3 2 1倒计时
*/ */
@ -283,16 +154,10 @@ public abstract class AbsLivePushViewHolder extends AbsViewHolder implements ILi
mLivePushListener = livePushListener; mLivePushListener = livePushListener;
} }
@Override
public BeautyEffectListener getEffectListener() {
return mEffectListener;
}
protected abstract void onCameraRestart(); protected abstract void onCameraRestart();
protected abstract DefaultBeautyEffectListener getDefaultEffectListener();
protected abstract Beauty360EffectListener getBeauty360EffectListener();
@Override @Override
public void release() { public void release() {
@ -312,9 +177,7 @@ public abstract class AbsLivePushViewHolder extends AbsViewHolder implements ILi
@Override @Override
public void onDestroy() { public void onDestroy() {
if (mTiSDKManager != null) {
mTiSDKManager.destroy();
}
L.e(TAG, "LifeCycle------>onDestroy"); L.e(TAG, "LifeCycle------>onDestroy");
} }

View File

@ -11,10 +11,7 @@ import android.widget.ImageView;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; 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.CommonAppConfig;
import com.yunbao.common.bean.ConfigBean; import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.DpUtil;
@ -26,11 +23,7 @@ import com.yunbao.live.interfaces.ILivePushViewHolder;
import com.yunbao.live.interfaces.LivePushListener; import com.yunbao.live.interfaces.LivePushListener;
import cn.qqtheme.framework.util.ScreenUtils; 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 { 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 @Override
public void setLivePushListener(LivePushListener livePushListener) { 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.TRTCCloud;
import com.tencent.trtc.TRTCCloudDef; import com.tencent.trtc.TRTCCloudDef;
import com.tencent.trtc.TRTCCloudListener; 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.CommonAppConfig;
import com.yunbao.common.Constants; import com.yunbao.common.Constants;
import com.yunbao.common.bean.UserBean; 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 @Override
public void release() { public void release() {

View File

@ -26,9 +26,6 @@ import com.tencent.rtmp.TXLiveConstants;
import com.tencent.rtmp.TXLivePushConfig; import com.tencent.rtmp.TXLivePushConfig;
import com.tencent.rtmp.TXLivePusher; import com.tencent.rtmp.TXLivePusher;
import com.tencent.rtmp.ui.TXCloudVideoView; 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.CommonAppConfig;
import com.yunbao.common.CommonAppContext; import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants; import com.yunbao.common.Constants;
@ -47,10 +44,7 @@ import java.io.File;
import cn.qqtheme.framework.util.FileUtils; import cn.qqtheme.framework.util.FileUtils;
import cn.qqtheme.framework.util.ScreenUtils; 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; //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() { mLivePusher.setVideoProcessListener(new TXLivePusher.VideoCustomProcessListener() {
@Override @Override
public int onTextureCustomProcess(int i, int i1, int i2) { 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; return 0;
} }
@Override @Override
@ -216,7 +208,6 @@ public class LivePushTxViewHolder360Beauty extends AbsLivePushViewHolder impleme
//解压到贴纸目录 //解压到贴纸目录
File targetDir = new File(CommonAppConfig.VIDEO_TIE_ZHI_PATH+CommonAppConfig.TIEZHI_360_NAME); File targetDir = new File(CommonAppConfig.VIDEO_TIE_ZHI_PATH+CommonAppConfig.TIEZHI_360_NAME);
try { try {
TiUtils.unzip(file, targetDir);
}catch (Exception e){ }catch (Exception e){
// ToastUtil.show(WordUtil.getString(com.yunbao.beauty.R.string.tiezhi_unzip_failed)); // 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 @Override
public void changeToLeft() { public void changeToLeft() {

View File

@ -89,7 +89,6 @@ import com.yunbao.main.views.MainHomeShopViewHolder;
import com.yunbao.main.views.MainHomeVideoViewHolder; import com.yunbao.main.views.MainHomeVideoViewHolder;
import com.yunbao.main.views.MainHomeViewHolder; import com.yunbao.main.views.MainHomeViewHolder;
import com.yunbao.main.views.MainMeViewHolder; import com.yunbao.main.views.MainMeViewHolder;
import com.yunbao.video.activity.VideoRecord360BeautyActivity;
import com.yunbao.video.utils.VideoStorge; import com.yunbao.video.utils.VideoStorge;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
@ -710,21 +709,16 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
public void run() { public void run() {
String mBeautySdkType = CommonAppConfig.getInstance().getBeautySdkType(); String mBeautySdkType = CommonAppConfig.getInstance().getBeautySdkType();
if ("2".equals(mBeautySdkType)) { if ("2".equals(mBeautySdkType)) {
// startActivity(new Intent(mContext, VideoRecordActivity.class));
Constants.myIntoIndex = 2; Constants.myIntoIndex = 2;
Intent intent = new Intent(mContext, MyWebViewActivity.class); Intent intent = new Intent(mContext, MyWebViewActivity.class);
intent.putExtra(Constants.URL, CommonAppConfig.HOST + "/h5/shequ/index.html#/h5/shequ/release" + "?token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&isRelease=1"); intent.putExtra(Constants.URL, CommonAppConfig.HOST + "/h5/shequ/index.html#/h5/shequ/release" + "?token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&isRelease=1");
startActivity(intent); startActivity(intent);
} else if ("3".equals(mBeautySdkType)) {
startActivity(new Intent(mContext, VideoRecord360BeautyActivity.class));
} else { } else {
// startActivity(new Intent(mContext, VideoRecordActivity.class));
Constants.myIntoIndex = 2; Constants.myIntoIndex = 2;
Intent intent = new Intent(mContext, MyWebViewActivity.class); Intent intent = new Intent(mContext, MyWebViewActivity.class);
intent.putExtra(Constants.URL, CommonAppConfig.HOST + "/h5/shequ/index.html#/h5/shequ/release" + "?token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&isRelease=1"); intent.putExtra(Constants.URL, CommonAppConfig.HOST + "/h5/shequ/index.html#/h5/shequ/release" + "?token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&isRelease=1");
startActivity(intent); startActivity(intent);
} }
// startActivity(new Intent(mContext, VideoRecordActivity.class));
} }
}; };

View File

@ -1 +1 @@
include ':app', ':beauty', ':video', ':common', ':main', ':baidu', ':live', ':lib_country_code' include ':app', ':video', ':common', ':main', ':baidu', ':live', ':lib_country_code'

View File

@ -61,9 +61,7 @@ dependencies {
implementation rootProject.ext.dependencies["recyclerview-androidx"] implementation rootProject.ext.dependencies["recyclerview-androidx"]
//common //common
implementation project(path: ':common') implementation project(path: ':common')
//
implementation project(path: ':beauty')
//
implementation project(path: ':live') implementation project(path: ':live')
} }

View File

@ -1,7 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yunbao.video" package="com.yunbao.video"
> >
<application <application
android:allowBackup="true" android:allowBackup="true"
android:theme="@style/AppTheme" android:theme="@style/AppTheme"
@ -11,11 +10,7 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="adjustNothing|stateAlwaysHidden" android:windowSoftInputMode="adjustNothing|stateAlwaysHidden"
/> />
<activity
android:name="com.yunbao.video.activity.VideoRecordActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustNothing|stateAlwaysHidden"
/>
<activity <activity
android:name="com.yunbao.video.activity.VideoChooseActivity" android:name="com.yunbao.video.activity.VideoChooseActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
@ -33,11 +28,6 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateAlwaysHidden" android:windowSoftInputMode="adjustPan|stateAlwaysHidden"
/> />
<activity
android:name="com.yunbao.video.activity.VideoRecord360BeautyActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateAlwaysHidden"
/>
</application> </application>
</manifest> </manifest>

View File

@ -7,10 +7,8 @@ import androidx.recyclerview.widget.RecyclerView;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import com.yunbao.beauty.bean.FilterBean;
import com.yunbao.common.views.AbsViewHolder; import com.yunbao.common.views.AbsViewHolder;
import com.yunbao.video.R; import com.yunbao.video.R;
import com.yunbao.beauty.adapter.FilterAdapter;
import com.yunbao.common.interfaces.OnItemClickListener; import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.BitmapUtil; import com.yunbao.common.utils.BitmapUtil;
@ -19,7 +17,7 @@ import com.yunbao.common.utils.BitmapUtil;
* 视频编辑 滤镜 * 视频编辑 滤镜
*/ */
public class VideoEditFilterViewHolder extends AbsViewHolder implements OnItemClickListener<FilterBean>, View.OnClickListener { public class VideoEditFilterViewHolder extends AbsViewHolder {
private ActionListener mActionListener; private ActionListener mActionListener;
private boolean mShowed; private boolean mShowed;
@ -37,35 +35,12 @@ public class VideoEditFilterViewHolder extends AbsViewHolder implements OnItemCl
@Override @Override
public void init() { public void init() {
findViewById(R.id.root).setOnClickListener(this);
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView); RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true); recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)); recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
FilterAdapter adapter = new FilterAdapter(mContext);
adapter.setOnItemClickListener(this);
recyclerView.setAdapter(adapter);
} }
@Override
public void onItemClick(FilterBean bean, int position) {
if (mBitmap != null) {
mBitmap.recycle();
}
if (mActionListener != null) {
int filterSrc = bean.getFilterSrc();
if (filterSrc != 0) {
Bitmap bitmap = BitmapUtil.getInstance().decodeBitmap(filterSrc);
if (bitmap != null) {
mBitmap = bitmap;
mActionListener.onFilterChanged(bitmap);
} else {
mActionListener.onFilterChanged(null);
}
} else {
mActionListener.onFilterChanged(null);
}
}
}
public void show() { public void show() {
mShowed = true; mShowed = true;
@ -84,10 +59,6 @@ public class VideoEditFilterViewHolder extends AbsViewHolder implements OnItemCl
} }
} }
@Override
public void onClick(View v) {
hide();
}
public interface ActionListener { public interface ActionListener {
void onHide(); void onHide();

View File

@ -5,7 +5,6 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.TextView; import android.widget.TextView;
import com.yunbao.beauty.custom.TextSeekBar;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.views.AbsViewHolder; import com.yunbao.common.views.AbsViewHolder;
import com.yunbao.video.R; import com.yunbao.video.R;
@ -23,8 +22,6 @@ public class VideoEditMusicViewHolder extends AbsViewHolder implements View.OnCl
private TextView mStartTime;//起始时间 private TextView mStartTime;//起始时间
private TextView mEndTime;//结束时间 private TextView mEndTime;//结束时间
private RangeSlider mRangeSlider; private RangeSlider mRangeSlider;
private TextSeekBar mOriginSeekBar;//原声
private TextSeekBar mBgmSeekBar;//背景音
private TextView mMusicName;//音乐名称 private TextView mMusicName;//音乐名称
private ActionListener mActionListener; private ActionListener mActionListener;
private boolean mShowed; private boolean mShowed;
@ -78,28 +75,7 @@ public class VideoEditMusicViewHolder extends AbsViewHolder implements View.OnCl
}); });
findViewById(R.id.root).setOnClickListener(this); findViewById(R.id.root).setOnClickListener(this);
findViewById(R.id.btn_cancel).setOnClickListener(this); findViewById(R.id.btn_cancel).setOnClickListener(this);
mOriginSeekBar = (TextSeekBar) findViewById(R.id.btn_origin);
mBgmSeekBar = (TextSeekBar) findViewById(R.id.seek_bgm);
TextSeekBar.OnSeekChangeListener seekChangeListener = new TextSeekBar.OnSeekChangeListener() {
@Override
public void onProgressChanged(View v, int progress) {
if (mActionListener != null) {
int i = v.getId();
if (i == R.id.btn_origin) {
mActionListener.onOriginalVolumeChanged(progress / 100f);
} else if (i == R.id.seek_bgm) {
mActionListener.onBgmVolumeChanged(progress / 100f);
}
}
}
};
mOriginSeekBar.setOnSeekChangeListener(seekChangeListener);
mBgmSeekBar.setOnSeekChangeListener(seekChangeListener);
if (mBgmSeekBar != null) {
mBgmSeekBar.setProgress(0);
mBgmSeekBar.setEnabled(false);
}
if (mCurMusicBean != null) { if (mCurMusicBean != null) {
setMusicBean(mCurMusicBean); setMusicBean(mCurMusicBean);
@ -120,16 +96,7 @@ public class VideoEditMusicViewHolder extends AbsViewHolder implements View.OnCl
mMusicName.setText(bean.getTitle()); mMusicName.setText(bean.getTitle());
} }
//如果在录制的时候有背景音则要把原声禁用 //如果在录制的时候有背景音则要把原声禁用
if (mHasOriginBgm) {
if (mOriginSeekBar != null) {
mOriginSeekBar.setEnabled(false);
mOriginSeekBar.setProgress(0);
}
}
if (mBgmSeekBar != null) {
mBgmSeekBar.setProgress(80);
mBgmSeekBar.setEnabled(true);
}
if (mRangeSlider != null) { if (mRangeSlider != null) {
mRangeSlider.resetRangePos(); mRangeSlider.resetRangePos();
} }
@ -144,14 +111,7 @@ public class VideoEditMusicViewHolder extends AbsViewHolder implements View.OnCl
if (mCutGroup != null && mCutGroup.getVisibility() == View.VISIBLE) { if (mCutGroup != null && mCutGroup.getVisibility() == View.VISIBLE) {
mCutGroup.setVisibility(View.GONE); mCutGroup.setVisibility(View.GONE);
} }
if (mOriginSeekBar != null) {
mOriginSeekBar.setProgress(80);
mOriginSeekBar.setEnabled(true);
}
if (mBgmSeekBar != null) {
mBgmSeekBar.setProgress(0);
mBgmSeekBar.setEnabled(false);
}
if (mActionListener != null) { if (mActionListener != null) {
mActionListener.onBgmCancelClick(); mActionListener.onBgmCancelClick();
} }

View File

@ -1,324 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000"
>
<com.tencent.rtmp.ui.TXCloudVideoView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<RelativeLayout
android:id="@+id/group_1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/btn_start_record"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:onClick="recordClick"
>
<com.yunbao.video.custom.VideoRecordBtnView
android:id="@+id/record_btn_view"
android:layout_width="70dp"
android:layout_height="70dp"
app:vrb_color="#80ff6131"
app:vrb_max_width="10dp"
app:vrb_min_width="2dp"
app:vrb_start_width="7dp"
/>
<View
android:id="@+id/record_view"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_gravity="center"
android:background="@drawable/bg_btn_record_1"
/>
</FrameLayout>
<com.yunbao.common.custom.DrawableTextView
android:id="@+id/btn_next"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="35dp"
android:onClick="recordClick"
android:paddingTop="4dp"
android:translationX="120dp"
android:visibility="invisible"
app:dt_top_drawable="@mipmap/icon_video_next"
app:dt_top_height="30dp"
app:dt_top_width="30dp"
/>
<com.yunbao.video.custom.RecordProgressView
android:id="@+id/record_progress_view"
android:layout_width="match_parent"
android:layout_height="3dp"
android:layout_alignParentBottom="true"
/>
<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/record_progress_view"
android:layout_alignParentRight="true"
android:layout_marginBottom="8dp"
android:layout_marginRight="10dp"
android:text="0.00s"
android:textColor="@color/white"
android:textSize="13sp"
/>
<RelativeLayout
android:id="@+id/group_2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="30dp"
>
<ImageView
android:id="@+id/btn_back"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginLeft="8dp"
android:onClick="backClick"
android:padding="10dp"
android:src="@mipmap/icon_video_close"
android:translationY="-2dp"
/>
<com.yunbao.common.custom.DrawableTextView
android:id="@+id/btn_camera"
android:layout_width="40dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:layout_marginTop="7dp"
android:drawablePadding="2dp"
android:gravity="center_horizontal"
android:onClick="recordClick"
android:paddingTop="3dp"
android:text="@string/video_record_camera"
android:textColor="@color/white"
android:textSize="11sp"
app:dt_top_drawable="@mipmap/icon_video_camera"
app:dt_top_height="26dp"
app:dt_top_width="26dp"
/>
<com.yunbao.common.custom.DrawableRadioButton2
android:id="@+id/btn_flash"
android:layout_width="40dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_below="@id/btn_camera"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:button="@null"
android:drawablePadding="2dp"
android:gravity="center_horizontal"
android:onClick="recordClick"
android:paddingTop="3dp"
android:text="@string/video_record_flash"
android:textColor="@color/white"
android:textSize="11sp"
app:dt_top_drawable="@drawable/bg_video_record_flash"
app:dt_top_height="26dp"
app:dt_top_width="26dp"
/>
<com.yunbao.common.custom.DrawableTextView
android:id="@+id/btn_beauty"
android:layout_width="40dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_below="@id/btn_flash"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:drawablePadding="2dp"
android:gravity="center_horizontal"
android:onClick="recordClick"
android:paddingTop="3dp"
android:text="@string/beauty"
android:textColor="@color/white"
android:textSize="11sp"
app:dt_top_drawable="@mipmap/icon_video_beauty"
app:dt_top_height="26dp"
app:dt_top_width="26dp"
/>
<com.yunbao.common.custom.DrawableTextView
android:id="@+id/btn_music"
android:layout_width="40dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_below="@id/btn_beauty"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:drawablePadding="2dp"
android:gravity="center_horizontal"
android:onClick="recordClick"
android:paddingTop="3dp"
android:text="@string/music"
android:textColor="@color/white"
android:textSize="11sp"
app:dt_top_drawable="@mipmap/icon_video_music"
app:dt_top_height="26dp"
app:dt_top_width="26dp"
/>
<RadioGroup
android:layout_width="280dp"
android:layout_height="30dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="110dp"
android:background="@drawable/bg_video_record_speed"
android:orientation="horizontal"
>
<RadioButton
android:id="@+id/btn_speed_1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/bg_btn_video_record_speed"
android:button="@null"
android:gravity="center"
android:onClick="recordClick"
android:text="@string/video_record_speed_1"
android:textColor="@color/white"
android:textSize="12sp"
/>
<RadioButton
android:id="@+id/btn_speed_2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/bg_btn_video_record_speed"
android:button="@null"
android:gravity="center"
android:onClick="recordClick"
android:text="@string/video_record_speed_2"
android:textColor="@color/white"
android:textSize="12sp"
/>
<RadioButton
android:id="@+id/btn_speed_3"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/bg_btn_video_record_speed"
android:button="@null"
android:checked="true"
android:gravity="center"
android:onClick="recordClick"
android:text="@string/video_record_speed_3"
android:textColor="@color/white"
android:textSize="12sp"
/>
<RadioButton
android:id="@+id/btn_speed_4"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/bg_btn_video_record_speed"
android:button="@null"
android:gravity="center"
android:onClick="recordClick"
android:text="@string/video_record_speed_4"
android:textColor="@color/white"
android:textSize="12sp"
/>
<RadioButton
android:id="@+id/btn_speed_5"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/bg_btn_video_record_speed"
android:button="@null"
android:gravity="center"
android:onClick="recordClick"
android:text="@string/video_record_speed_5"
android:textColor="@color/white"
android:textSize="12sp"
/>
</RadioGroup>
<RelativeLayout
android:id="@+id/group_3"
android:layout_width="wrap_content"
android:layout_height="70dp"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:layout_marginBottom="15dp"
android:translationX="100dp"
>
<com.yunbao.common.custom.DrawableTextView
android:id="@+id/btn_upload"
android:layout_width="40dp"
android:layout_height="50dp"
android:layout_centerInParent="true"
android:layout_marginRight="10dp"
android:drawablePadding="2dp"
android:gravity="center_horizontal"
android:onClick="recordClick"
android:paddingTop="3dp"
android:text="@string/upload"
android:textColor="@color/white"
android:textSize="11sp"
app:dt_top_drawable="@mipmap/icon_video_upload"
app:dt_top_height="26dp"
app:dt_top_width="26dp"
/>
</RelativeLayout>
<LinearLayout
android:id="@+id/group_4"
android:layout_width="wrap_content"
android:layout_height="70dp"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:layout_marginBottom="20dp"
android:gravity="center_vertical"
android:translationX="60dp"
android:visibility="invisible"
>
<ImageView
android:id="@+id/btn_delete"
android:layout_width="40dp"
android:layout_height="40dp"
android:onClick="recordClick"
android:padding="4dp"
android:src="@mipmap/icon_video_delete"
/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>

View File

@ -115,24 +115,6 @@
/> />
</RelativeLayout> </RelativeLayout>
<com.yunbao.beauty.custom.TextSeekBar
android:id="@+id/btn_origin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
app:progressVal="80"
app:text2="@string/video_edit_origin"
/>
<com.yunbao.beauty.custom.TextSeekBar
android:id="@+id/seek_bgm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
app:progressVal="80"
app:text2="@string/music"
/>
</LinearLayout> </LinearLayout>
</FrameLayout> </FrameLayout>