1
This commit is contained in:
parent
c7e03f576c
commit
d150d8d599
@ -47,8 +47,6 @@
|
||||
<uses-permission
|
||||
android:name="android.permission.MODIFY_AUDIO_SETTINGS"
|
||||
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.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
|
@ -154,7 +154,7 @@ dependencies {
|
||||
//此处以集成 5.1.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.twitter.sdk.android:twitter-core:3.1.1@aar') {
|
||||
|
@ -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"
}
|
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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();
|
||||
|
||||
}
|
||||
|
@ -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");
|
||||
}
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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() {
|
||||
|
@ -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() {
|
||||
|
@ -89,7 +89,6 @@ import com.yunbao.main.views.MainHomeShopViewHolder;
|
||||
import com.yunbao.main.views.MainHomeVideoViewHolder;
|
||||
import com.yunbao.main.views.MainHomeViewHolder;
|
||||
import com.yunbao.main.views.MainMeViewHolder;
|
||||
import com.yunbao.video.activity.VideoRecord360BeautyActivity;
|
||||
import com.yunbao.video.utils.VideoStorge;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
@ -710,21 +709,16 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
public void run() {
|
||||
String mBeautySdkType = CommonAppConfig.getInstance().getBeautySdkType();
|
||||
if ("2".equals(mBeautySdkType)) {
|
||||
// startActivity(new Intent(mContext, VideoRecordActivity.class));
|
||||
Constants.myIntoIndex = 2;
|
||||
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");
|
||||
startActivity(intent);
|
||||
} else if ("3".equals(mBeautySdkType)) {
|
||||
startActivity(new Intent(mContext, VideoRecord360BeautyActivity.class));
|
||||
} else {
|
||||
// startActivity(new Intent(mContext, VideoRecordActivity.class));
|
||||
Constants.myIntoIndex = 2;
|
||||
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");
|
||||
startActivity(intent);
|
||||
}
|
||||
// startActivity(new Intent(mContext, VideoRecordActivity.class));
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -1 +1 @@
|
||||
include ':app', ':beauty', ':video', ':common', ':main', ':baidu', ':live', ':lib_country_code'
|
||||
include ':app', ':video', ':common', ':main', ':baidu', ':live', ':lib_country_code'
|
||||
|
@ -61,9 +61,7 @@ dependencies {
|
||||
implementation rootProject.ext.dependencies["recyclerview-androidx"]
|
||||
//common
|
||||
implementation project(path: ':common')
|
||||
//萌颜
|
||||
implementation project(path: ':beauty')
|
||||
//萌颜
|
||||
|
||||
implementation project(path: ':live')
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.yunbao.video"
|
||||
>
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:theme="@style/AppTheme"
|
||||
@ -11,11 +10,7 @@
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustNothing|stateAlwaysHidden"
|
||||
/>
|
||||
<activity
|
||||
android:name="com.yunbao.video.activity.VideoRecordActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustNothing|stateAlwaysHidden"
|
||||
/>
|
||||
|
||||
<activity
|
||||
android:name="com.yunbao.video.activity.VideoChooseActivity"
|
||||
android:screenOrientation="portrait"
|
||||
@ -33,11 +28,6 @@
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustPan|stateAlwaysHidden"
|
||||
/>
|
||||
<activity
|
||||
android:name="com.yunbao.video.activity.VideoRecord360BeautyActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustPan|stateAlwaysHidden"
|
||||
/>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -7,10 +7,8 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.yunbao.beauty.bean.FilterBean;
|
||||
import com.yunbao.common.views.AbsViewHolder;
|
||||
import com.yunbao.video.R;
|
||||
import com.yunbao.beauty.adapter.FilterAdapter;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
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 boolean mShowed;
|
||||
@ -37,35 +35,12 @@ public class VideoEditFilterViewHolder extends AbsViewHolder implements OnItemCl
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
findViewById(R.id.root).setOnClickListener(this);
|
||||
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
|
||||
recyclerView.setHasFixedSize(true);
|
||||
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() {
|
||||
mShowed = true;
|
||||
@ -84,10 +59,6 @@ public class VideoEditFilterViewHolder extends AbsViewHolder implements OnItemCl
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
hide();
|
||||
}
|
||||
|
||||
public interface ActionListener {
|
||||
void onHide();
|
||||
|
@ -5,7 +5,6 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.yunbao.beauty.custom.TextSeekBar;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.views.AbsViewHolder;
|
||||
import com.yunbao.video.R;
|
||||
@ -23,8 +22,6 @@ public class VideoEditMusicViewHolder extends AbsViewHolder implements View.OnCl
|
||||
private TextView mStartTime;//起始时间
|
||||
private TextView mEndTime;//结束时间
|
||||
private RangeSlider mRangeSlider;
|
||||
private TextSeekBar mOriginSeekBar;//原声
|
||||
private TextSeekBar mBgmSeekBar;//背景音
|
||||
private TextView mMusicName;//音乐名称
|
||||
private ActionListener mActionListener;
|
||||
private boolean mShowed;
|
||||
@ -78,28 +75,7 @@ public class VideoEditMusicViewHolder extends AbsViewHolder implements View.OnCl
|
||||
});
|
||||
findViewById(R.id.root).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) {
|
||||
setMusicBean(mCurMusicBean);
|
||||
@ -120,16 +96,7 @@ public class VideoEditMusicViewHolder extends AbsViewHolder implements View.OnCl
|
||||
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) {
|
||||
mRangeSlider.resetRangePos();
|
||||
}
|
||||
@ -144,14 +111,7 @@ public class VideoEditMusicViewHolder extends AbsViewHolder implements View.OnCl
|
||||
if (mCutGroup != null && mCutGroup.getVisibility() == View.VISIBLE) {
|
||||
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) {
|
||||
mActionListener.onBgmCancelClick();
|
||||
}
|
||||
|
@ -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>
|
@ -115,24 +115,6 @@
|
||||
/>
|
||||
</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>
|
||||
|
||||
</FrameLayout>
|
Loading…
Reference in New Issue
Block a user