1
This commit is contained in:
parent
c7e03f576c
commit
d150d8d599
@ -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" />
|
||||||
|
@ -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') {
|
||||||
|
@ -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.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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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();
|
|
||||||
}
|
}
|
||||||
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
@ -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() {
|
||||||
|
@ -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() {
|
||||||
|
@ -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));
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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"]
|
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')
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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>
|
||||||
|
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.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();
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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>
|
</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>
|
Loading…
Reference in New Issue
Block a user