Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
android
/
dayu
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
111203fe
authored
4 years ago
by
mReturn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
直播调试
parent
f88e6950
master
…
dev
dev_xx
dev_xx_241116
dev_xx_250108_toast
dev_xx_250224_report
dev_xx_web
v2.7.2
v2.7.1
v2.7.0
v2.6.9
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.9
dev20230405
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
268 additions
and
63 deletions
app/src/main/java/com/dayu/bigfish/ui/MainActivity.java
baseSDK/src/main/java/com/dayu/common/Constants.java
baseSDK/src/main/java/com/dayu/widgets/TextDialog.java
baseSDK/src/main/res/layout/dialog_live_back_text.xml
baseSDK/src/main/res/layout/item_dialog_live_back_text.xml
learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PrepareLiveActivity.java
learnCenter/src/main/java/com/dayu/learncenter/ui/activity/VideoPlayActivity.java
learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/HomeLearnFragment.java
learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/LiveListFragment.java
learnCenter/src/main/res/layout/activity_prepare_live.xml
liveModule/build.gradle
liveModule/src/main/java/com/dayu/livemodule/LiveUtils.java
liveModule/src/main/java/com/dayu/livemodule/MLVBLiveRoomImpl.java
liveModule/src/main/java/com/dayu/livemodule/event/UserKickOutEvent.java
liveModule/src/main/java/com/dayu/livemodule/roomutil/im/IMMessageMgr.java
liveModule/src/main/java/com/dayu/livemodule/xiaozhibo/TCGlobalConfig.java
liveModule/src/main/java/com/dayu/livemodule/xiaozhibo/anchor/TCCameraAnchorActivity.java
liveModule/src/main/java/com/dayu/livemodule/xiaozhibo/audience/TCAudienceActivity.java
liveModule/src/main/res/layout/activity_audience.xml
liveModule/src/main/res/layout/activity_camera_anchor.xml
liveModule/src/main/res/layout/dialog_publish_detail.xml
app/src/main/java/com/dayu/bigfish/ui/MainActivity.java
View file @
111203fe
...
...
@@ -43,6 +43,7 @@ import com.dayu.event.SaleTabNumEvent;
import
com.dayu.event.UserInfo
;
import
com.dayu.learncenter.ui.fragment.HomeLearnFragment
;
import
com.dayu.livemodule.LiveUtils
;
import
com.dayu.livemodule.event.UserKickOutEvent
;
import
com.dayu.location.base.LocationUtils
;
import
com.dayu.order.common.TabNumEvent
;
import
com.dayu.order.ui.activity.OrderDetailsActivity
;
...
...
@@ -471,6 +472,11 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
}
}
@Subscribe
public
void
kickOutUser
(
UserKickOutEvent
event
)
{
showLoginDialog
();
}
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
...
...
This diff is collapsed.
Click to expand it.
baseSDK/src/main/java/com/dayu/common/Constants.java
View file @
111203fe
...
...
@@ -32,8 +32,8 @@ public class Constants {
public
static
final
String
PROGRAM_PATH
=
"pages/mallDetail/main?goodsId=gid&userId=uid&type=1"
;
//小程序路径
public
static
final
String
INVITE_NEW_SHARE_URL
=
"http://app.dl.kf.ai/ext/#/shareMaster?code="
;
//邀请新人分享链接
public
static
final
String
INVITE_NEW_SHARE_URL_BUSINESS
=
"http://app.dl.kf.ai/ext/#/merchants?code="
;
//邀请商家分享链接
//
public static String VIDEO_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="; //学习视频分享链接 type(课程: course 直播: live)
public
static
String
VIDEO_SHARE_URL
=
"http://uat.kf.ai:9099/#/shareVideo?type=_type&id="
;
//uat 学习视频分享链接 type(课程: course 直播: live)
public
static
String
VIDEO_SHARE_URL
=
"http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="
;
//学习视频分享链接 type(课程: course 直播: live)
//
public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live)
/**
...
...
@@ -56,34 +56,35 @@ public class Constants {
/**
* uat测试环境配置.
*/
public
static
String
ENVIROMENT
=
"uat"
;
public
static
int
LOG_LEVEL
=
LogUtils
.
LEVEL_ALL
;
public
static
String
BASE_URL
=
"http://47.95.223.6:3112"
;
public
static
String
WEB_SOP
=
"http://47.95.223.6:9004/#/sop"
;
public
static
String
WEB_SOP_DETAIL
=
"http://47.95.223.6:9004/#/sopdetail"
;
public
static
String
WEB_ZHI_SHI
=
"http://47.95.223.6:9004/#/detail"
;
public
static
String
CHECK_MULTI_WEB_SOP
=
"http://47.95.223.6:9004/#/manyServiceResult"
;
public
static
String
MULTI_WEB_SOP
=
"http://47.95.223.6:9004/#/manySop"
;
public
static
final
String
UP_PHOTO
=
"/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply"
;
public
static
final
String
UP_VIDEO
=
"/file/uploadVideoOne?targetPath=test/video"
;
public
static
final
boolean
IS_DEBUG
=
true
;
public
static
final
boolean
CAN_CHANGE_ENV
=
false
;
//是否显示切换开发环境菜单
// public static String ENVIROMENT = "uat";
// public static int LOG_LEVEL = LogUtils.LEVEL_ALL;
// public static String BASE_URL = "http://47.95.223.6:3112";
// public static String WEB_SOP = "http://47.95.223.6:9004/#/sop";
// public static String WEB_SOP_DETAIL = "http://47.95.223.6:9004/#/sopdetail";
// public static String WEB_ZHI_SHI = "http://47.95.223.6:9004/#/detail";
// public static String CHECK_MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manyServiceResult";
// public static String MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manySop";
// public static final String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
// public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=test/video";
// public static final boolean IS_DEBUG = true;
// public static final boolean CAN_CHANGE_ENV = false; //是否显示切换开发环境菜单
/**
* 正式环境.
*/
//
public static String ENVIROMENT = "release";
//
public static int LOG_LEVEL = LogUtils.LEVEL_OFF;
//
public static String BASE_URL = "https://mobile.kf.ai";
//
public static String WEB_SOP = "https://sop.kf.ai/#/sop";
//
public static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
//
public static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
//
public static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
//
public static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
//
public static final String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
//
public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=online/video";
//
public static final boolean IS_DEBUG = false;
//
public static final boolean CAN_CHANGE_ENV = false; //是否显示切换开发环境菜单
public
static
String
ENVIROMENT
=
"release"
;
public
static
int
LOG_LEVEL
=
LogUtils
.
LEVEL_OFF
;
public
static
String
BASE_URL
=
"https://mobile.kf.ai"
;
public
static
String
WEB_SOP
=
"https://sop.kf.ai/#/sop"
;
public
static
String
WEB_SOP_DETAIL
=
"https://sop.kf.ai/#/sopdetail"
;
public
static
String
WEB_ZHI_SHI
=
"https://sop.kf.ai/#/detail"
;
public
static
String
CHECK_MULTI_WEB_SOP
=
"https://sop.kf.ai/#/manyServiceResult"
;
public
static
String
MULTI_WEB_SOP
=
"https://sop.kf.ai/#/manySop"
;
public
static
final
String
UP_PHOTO
=
"/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply"
;
public
static
final
String
UP_VIDEO
=
"/file/uploadVideoOne?targetPath=online/video"
;
public
static
final
boolean
IS_DEBUG
=
false
;
public
static
final
boolean
CAN_CHANGE_ENV
=
false
;
//是否显示切换开发环境菜单
/**
* 统一配置.
...
...
This diff is collapsed.
Click to expand it.
baseSDK/src/main/java/com/dayu/widgets/TextDialog.java
View file @
111203fe
...
...
@@ -72,11 +72,16 @@ public class TextDialog {
}
public
void
showCenterDialog
(
final
Activity
activity
,
List
<
String
>
strs
,
onItemClickListener
listener
)
{
showCenterDialog
(
activity
,
R
.
layout
.
dialog_text
,
R
.
layout
.
item_dialog_text
,
strs
,
listener
);
}
public
void
showCenterDialog
(
final
Activity
activity
,
int
viewId
,
int
itemId
,
List
<
String
>
strs
,
onItemClickListener
listener
)
{
View
mView
=
View
.
inflate
(
activity
,
R
.
layout
.
dialog_text
,
null
);
View
mView
=
View
.
inflate
(
activity
,
viewId
,
null
);
RecyclerView
recyclerView
=
mView
.
findViewById
(
R
.
id
.
rv_text
);
BaseQuickAdapter
<
String
,
BaseViewHolder
>
mAdapter
=
new
BaseQuickAdapter
<
String
,
BaseViewHolder
>(
R
.
layout
.
item_dialog_text
,
strs
)
{
BaseQuickAdapter
<
String
,
BaseViewHolder
>
mAdapter
=
new
BaseQuickAdapter
<
String
,
BaseViewHolder
>(
itemId
,
strs
)
{
@Override
protected
void
convert
(
BaseViewHolder
helper
,
String
item
)
{
helper
.
setText
(
R
.
id
.
tv_text
,
item
);
...
...
This diff is collapsed.
Click to expand it.
baseSDK/src/main/res/layout/dialog_live_back_text.xml
0 → 100644
View file @
111203fe
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
android:background=
"@color/white"
android:layout_marginLeft=
"30dp"
android:layout_marginRight=
"30dp"
>
<TextView
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:text=
'请选择视频片段'
android:layout_margin=
"15dp"
android:textColor=
"@color/common_text_color"
android:textSize=
"16sp"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"0.5dp"
android:background=
"#999"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/rv_text"
android:layout_margin=
"15dp"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:overScrollMode=
"never"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
baseSDK/src/main/res/layout/item_dialog_live_back_text.xml
0 → 100644
View file @
111203fe
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:id=
"@+id/tv_text"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:padding=
"10dp"
android:text=
'aaa'
android:textColor=
"@color/text_common_blue"
android:textSize=
"@dimen/sp_14"
/>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PrepareLiveActivity.java
View file @
111203fe
...
...
@@ -9,6 +9,8 @@ import com.dayu.base.ui.activity.BaseActivity;
import
com.dayu.base.ui.presenter.SImplePresenter
;
import
com.dayu.learncenter.R
;
import
com.dayu.learncenter.databinding.ActivityPrepareLiveBinding
;
import
com.dayu.livemodule.LiveUtils
;
import
com.dayu.livemodule.event.UserKickOutEvent
;
import
com.dayu.livemodule.xiaozhibo.anchor.TCCameraAnchorActivity
;
import
com.dayu.livemodule.xiaozhibo.common.utils.TCConstants
;
import
com.dayu.livemodule.xiaozhibo.login.TCUserMgr
;
...
...
@@ -19,6 +21,8 @@ import com.luck.picture.lib.PictureSelector;
import
com.luck.picture.lib.config.PictureConfig
;
import
com.luck.picture.lib.entity.LocalMedia
;
import
org.greenrobot.eventbus.Subscribe
;
import
java.io.File
;
import
java.util.List
;
...
...
@@ -43,6 +47,7 @@ public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityP
@Override
public
void
initView
()
{
LiveUtils
.
checkUser
(
this
);
mBind
.
titleBack
.
setOnClickListener
(
view
->
dumpBack
());
mBind
.
ivCover
.
setOnClickListener
(
view
->
{
MediaChooseUtils
.
chooseLiveImg
(
this
);
...
...
@@ -119,4 +124,11 @@ public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityP
startActivity
(
intent
);
finish
();
}
@Subscribe
public
void
kickOutUser
(
UserKickOutEvent
event
)
{
// showToast("login invalid");
showLoginDialog
();
}
}
This diff is collapsed.
Click to expand it.
learnCenter/src/main/java/com/dayu/learncenter/ui/activity/VideoPlayActivity.java
View file @
111203fe
...
...
@@ -2,13 +2,13 @@ package com.dayu.learncenter.ui.activity;
import
android.content.Context
;
import
android.content.Intent
;
import
android.text.TextUtils
;
import
android.view.View
;
import
android.widget.ImageView
;
import
com.dayu.base.ui.activity.BaseActivity
;
import
com.dayu.base.ui.presenter.SImplePresenter
;
import
com.dayu.learncenter.R
;
import
com.dayu.learncenter.api.bean.LiveBackVideosBean
;
import
com.dayu.learncenter.databinding.ActivityVideoPlayBinding
;
import
com.dayu.utils.GlideImageLoader
;
...
...
@@ -16,15 +16,17 @@ import cn.jzvd.JzvdStd;
public
class
VideoPlayActivity
extends
BaseActivity
<
SImplePresenter
,
ActivityVideoPlayBinding
>
{
LiveBackVideosBean
videoData
;
String
videoUrl
=
""
;
String
imgUrl
=
""
;
@Override
public
void
setPresenter
()
{
}
public
static
void
launch
(
Context
context
,
LiveBackVideosBean
videosBean
)
{
public
static
void
launch
(
Context
context
,
String
videoUrl
,
String
imgUrl
)
{
Intent
intent
=
new
Intent
(
context
,
VideoPlayActivity
.
class
);
intent
.
putExtra
(
"data"
,
videosBean
);
intent
.
putExtra
(
"video"
,
videoUrl
);
intent
.
putExtra
(
"imgurl"
,
imgUrl
);
context
.
startActivity
(
intent
);
}
...
...
@@ -35,18 +37,19 @@ public class VideoPlayActivity extends BaseActivity<SImplePresenter, ActivityVid
@Override
public
void
initView
()
{
if
(
getIntent
().
hasExtra
(
"data"
))
videoData
=
(
LiveBackVideosBean
)
getIntent
().
getSerializableExtra
(
"data"
);
if
(
getIntent
().
hasExtra
(
"video"
))
videoUrl
=
getIntent
().
getStringExtra
(
"video"
);
if
(
getIntent
().
hasExtra
(
"imgurl"
))
imgUrl
=
getIntent
().
getStringExtra
(
"imgurl"
);
mBind
.
jzVideo
.
fullscreenButton
.
setVisibility
(
View
.
GONE
);
mBind
.
ivBack
.
setOnClickListener
(
v
->
dumpBack
());
if
(
videoData
!=
null
)
{
String
videoUrl
=
videoData
.
getVideoUrl
();
if
(!
TextUtils
.
isEmpty
(
videoUrl
))
{
mBind
.
jzVideo
.
setUp
(
videoUrl
,
""
);
mBind
.
jzVideo
.
thumbImageView
.
setScaleType
(
ImageView
.
ScaleType
.
FIT_CENTER
);
GlideImageLoader
.
loadNoDeal
(
this
,
mBind
.
jzVideo
.
thumbImageView
,
videoData
.
getLiveStreamPic
()
,
R
.
drawable
.
icon_video_default
);
imgUrl
,
R
.
drawable
.
icon_video_default
);
mBind
.
jzVideo
.
startVideo
();
}
}
...
...
This diff is collapsed.
Click to expand it.
learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/HomeLearnFragment.java
View file @
111203fe
...
...
@@ -21,7 +21,6 @@ import com.dayu.learncenter.databinding.FragmentHomeLearnBinding;
import
com.dayu.learncenter.event.RefreshLeanTabEvent
;
import
com.dayu.learncenter.ui.activity.PubCourseActivity
;
import
com.dayu.livemodule.event.StartPushEvent
;
import
com.dayu.livemodule.event.UserKickOutEvent
;
import
com.dayu.utils.TabLayoutUtils
;
import
com.dayu.utils.UIUtils
;
import
com.umeng.analytics.MobclickAgent
;
...
...
@@ -182,13 +181,10 @@ public class HomeLearnFragment extends BaseFragment<SImplePresenter, FragmentHom
getTabData
();
}
@Subscribe
public
void
kickOutUser
(
UserKickOutEvent
event
)
{
showLoginDialog
();
// UserManager.getInstance().clearUserInfo();
// AppManager.getInstance().finishAllActivity();
// ARouter.getInstance().build(BaseConstant.PATH_LOGIN).navigation();
}
// @Subscribe
// public void kickOutUser(UserKickOutEvent event) {
// showLoginDialog();
// }
@Subscribe
public
void
startPush
(
StartPushEvent
event
)
{
...
...
This diff is collapsed.
Click to expand it.
learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/LiveListFragment.java
View file @
111203fe
...
...
@@ -24,11 +24,13 @@ import com.dayu.livemodule.xiaozhibo.main.videolist.utils.TCVideoInfo;
import
com.dayu.livemodule.xiaozhibo.main.videolist.utils.TCVideoListMgr
;
import
com.dayu.utils.CommonUtils
;
import
com.dayu.utils.GlideImageLoader
;
import
com.dayu.widgets.TextDialog
;
import
org.greenrobot.eventbus.EventBus
;
import
org.greenrobot.eventbus.Subscribe
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
public
class
LiveListFragment
extends
BaseFragment
<
SImplePresenter
,
FragmentLiveListBinding
>
{
...
...
@@ -178,8 +180,7 @@ public class LiveListFragment extends BaseFragment<SImplePresenter, FragmentLive
ImageView
ivCover
=
helper
.
getView
(
R
.
id
.
iv_cover
);
GlideImageLoader
.
load
(
mActivity
,
ivCover
,
item
.
getLiveStreamPic
(),
R
.
drawable
.
icon_video_default
);
ivCover
.
setOnClickListener
(
v
->{
VideoPlayActivity
.
launch
(
mActivity
,
item
);
playBackVideo
(
item
.
getId
());
toVideoPlay
(
item
);
});
// MyJzvdStd jzVideo = helper.getView(R.id.jz_video);
...
...
@@ -196,6 +197,29 @@ public class LiveListFragment extends BaseFragment<SImplePresenter, FragmentLive
}
}
private
void
toVideoPlay
(
LiveBackVideosBean
item
)
{
if
(!
TextUtils
.
isEmpty
(
item
.
getVideoUrl
())){
String
[]
urlArr
=
item
.
getVideoUrl
().
split
(
","
);
if
(
urlArr
.
length
>
1
){
List
<
String
>
urls
=
Arrays
.
asList
(
urlArr
);
List
<
String
>
titles
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
urls
.
size
();
i
++){
titles
.
add
(
item
.
getTitle
()+
"_"
+(
i
+
1
));
}
TextDialog
.
getInstance
().
showCenterDialog
(
mActivity
,
R
.
layout
.
dialog_live_back_text
,
R
.
layout
.
item_dialog_live_back_text
,
titles
,
pos
->
{
VideoPlayActivity
.
launch
(
mActivity
,
urls
.
get
(
pos
),
item
.
getLiveStreamPic
());
playBackVideo
(
item
.
getId
());
});
}
else
{
VideoPlayActivity
.
launch
(
mActivity
,
urlArr
[
0
],
item
.
getLiveStreamPic
());
playBackVideo
(
item
.
getId
());
}
}
else
{
showToast
(
"播放地址无效"
);
}
}
//回放视频点赞
private
void
pointBackVideo
(
LiveBackVideosBean
item
)
{
int
type
=
item
.
getPointStatus
()
==
1
?
2
:
1
;
...
...
This diff is collapsed.
Click to expand it.
learnCenter/src/main/res/layout/activity_prepare_live.xml
View file @
111203fe
...
...
@@ -63,7 +63,7 @@
android:background=
"@color/white"
android:gravity=
"top"
android:hint=
"@string/text_live_title_input"
android:maxLength=
"
32
"
android:maxLength=
"
20
"
android:maxLines=
"1"
android:paddingLeft=
"10dp"
android:paddingTop=
"10dp"
...
...
This diff is collapsed.
Click to expand it.
liveModule/build.gradle
View file @
111203fe
...
...
@@ -49,6 +49,8 @@ dependencies {
// 美颜面板
implementation
project
(
':beauty'
)
implementation
'org.greenrobot:eventbus:3.1.1'
implementation
'com.badoo.mobile:android-weak-handler:1.1'
...
...
This diff is collapsed.
Click to expand it.
liveModule/src/main/java/com/dayu/livemodule/LiveUtils.java
View file @
111203fe
...
...
@@ -59,6 +59,16 @@ public class LiveUtils {
});
}
//验证用户是否有效
public
static
void
checkUser
(
Context
context
)
{
MLVBLiveRoom
mLiveRoom
=
MLVBLiveRoom
.
sharedInstance
(
context
);
TCUserMgr
tcLoginMgr
=
TCUserMgr
.
getInstance
();
if
(
mLiveRoom
!=
null
){
mLiveRoom
.
setSelfProfile
(
tcLoginMgr
.
getNickname
(),
tcLoginMgr
.
getUserAvatar
());
}
}
public
static
void
initEnv
(
String
enviroment
)
{
TCGlobalConfig
.
ENVIRONMENT
=
enviroment
;
...
...
This diff is collapsed.
Click to expand it.
liveModule/src/main/java/com/dayu/livemodule/MLVBLiveRoomImpl.java
View file @
111203fe
...
...
@@ -2331,6 +2331,7 @@ public class MLVBLiveRoomImpl extends MLVBLiveRoom implements HttpRequests.Heart
TXLivePushConfig
config
=
new
TXLivePushConfig
();
config
.
setFrontCamera
(
frontCamera
);
config
.
enableScreenCaptureAutoRotate
(
mScreenAutoEnable
);
// 是否开启屏幕自适应
config
.
setTouchFocus
(
false
);
// 手动对焦
// config.setHomeOrientation(TXLiveConstants.VIDEO_ANGLE_HOME_RIGHT); //横屏推流
config
.
setPauseFlag
(
TXLiveConstants
.
PAUSE_FLAG_PAUSE_VIDEO
|
TXLiveConstants
.
PAUSE_FLAG_PAUSE_AUDIO
);
mTXLivePusher
.
setConfig
(
config
);
...
...
@@ -2892,13 +2893,19 @@ public class MLVBLiveRoomImpl extends MLVBLiveRoom implements HttpRequests.Heart
inputStreamList
.
put
(
mainStream
);
}
int
subWidth
=
160
;
int
subHeight
=
240
;
//
int subWidth = 160;
//
int subHeight = 240;
int
offsetHeight
=
90
;
int
subWidth
=
288
;
int
subHeight
=
432
;
// int offsetHeight = 162;
if
(
mMainStreamWidth
<
540
||
mMainStreamHeight
<
960
)
{
subWidth
=
120
;
subHeight
=
180
;
//
subWidth = 120;
//
subHeight = 180;
offsetHeight
=
60
;
subWidth
=
216
;
subHeight
=
324
;
// offsetHeight = 108;
}
int
subLocationX
=
mMainStreamWidth
-
subWidth
;
int
subLocationY
=
mMainStreamHeight
-
subHeight
-
offsetHeight
;
...
...
This diff is collapsed.
Click to expand it.
liveModule/src/main/java/com/dayu/livemodule/event/UserKickOutEvent.java
View file @
111203fe
package
com
.
dayu
.
livemodule
.
event
;
//用户被顶替下线
//
IM
用户被顶替下线
public
class
UserKickOutEvent
{
}
This diff is collapsed.
Click to expand it.
liveModule/src/main/java/com/dayu/livemodule/roomutil/im/IMMessageMgr.java
View file @
111203fe
...
...
@@ -5,6 +5,7 @@ import android.os.Handler;
import
android.support.annotation.NonNull
;
import
android.util.Log
;
import
com.dayu.livemodule.event.UserKickOutEvent
;
import
com.google.gson.Gson
;
import
com.google.gson.reflect.TypeToken
;
import
com.google.gson.JsonSyntaxException
;
...
...
@@ -33,6 +34,8 @@ import com.tencent.imsdk.TIMValueCallBack;
import
com.tencent.imsdk.ext.group.TIMGroupManagerExt
;
import
com.tencent.liteav.basic.log.TXCLog
;
import
org.greenrobot.eventbus.EventBus
;
import
java.util.ArrayList
;
import
java.util.FormatFlagsConversionMismatchException
;
import
java.util.HashMap
;
...
...
@@ -636,6 +639,9 @@ public class IMMessageMgr implements TIMMessageListener {
@Override
public
void
onError
(
int
code
,
String
desc
)
{
Log
.
e
(
TAG
,
"modifySelfProfile failed: "
+
code
+
" desc"
+
desc
);
if
(
code
==
6014
){
EventBus
.
getDefault
().
post
(
new
UserKickOutEvent
());
}
}
@Override
...
...
This diff is collapsed.
Click to expand it.
liveModule/src/main/java/com/dayu/livemodule/xiaozhibo/TCGlobalConfig.java
View file @
111203fe
...
...
@@ -20,10 +20,10 @@ public class TCGlobalConfig {
// public static String pushURLPrefix = "rtmp://push.dev.kf.ai"; //dev
// public static String ENVIRONMENT = "debug"; //dev
public
static
String
pushURLPrefix
=
"rtmp://push.uat.kf.ai"
;
//uat
public
static
String
ENVIRONMENT
=
"uat"
;
//dev
//
public static String pushURLPrefix = "rtmp://push.kf.ai"; //release
//
public static String ENVIRONMENT = "release"; //release
//
public static String pushURLPrefix = "rtmp://push.uat.kf.ai"; //uat
//
public static String ENVIRONMENT = "uat"; //dev
public
static
String
pushURLPrefix
=
"rtmp://push.kf.ai"
;
//release
public
static
String
ENVIRONMENT
=
"release"
;
//release
public
static
final
String
LIVE_ENVIRONMENT
=
"environment"
;
...
...
This diff is collapsed.
Click to expand it.
liveModule/src/main/java/com/dayu/livemodule/xiaozhibo/anchor/TCCameraAnchorActivity.java
View file @
111203fe
...
...
@@ -46,13 +46,13 @@ import java.util.Locale;
* <p>
* Function: 主播推流的页面
* <p>
*
*
<p>
* 1. MLVB 其他观众发起连麦请求处理:{@link TCCameraAnchorActivity#onRequestJoinAnchor(AnchorInfo, String)}
*
*
<p>
* 2. MLVB 其他主播连麦,结束连麦处理:{@link TCCameraAnchorActivity#onAnchorEnter(AnchorInfo)} {@link TCCameraAnchorActivity#onAnchorExit(AnchorInfo)}
*
*
<p>
* 3. 音效控制面板类 {@link TCAudioControl}
*
*
<p>
* 4. 美颜特效控制类 {@link BeautyPanel}
*/
public
class
TCCameraAnchorActivity
extends
TCBaseAnchorActivity
{
...
...
@@ -139,6 +139,7 @@ public class TCCameraAnchorActivity extends TCBaseAnchorActivity {
for
(
AnchorInfo
item
:
mPusherList
)
{
if
(
userID
.
equalsIgnoreCase
(
item
.
userID
))
{
onAnchorExit
(
item
);
// changePushView(item);
break
;
}
}
...
...
@@ -148,6 +149,29 @@ public class TCCameraAnchorActivity extends TCBaseAnchorActivity {
});
}
private
void
changePushView
(
AnchorInfo
item
)
{
final
TCVideoView
videoView
=
mPlayerVideoViewList
.
applyVideoView
(
item
.
userID
);
if
(
videoView
==
null
)
{
return
;
}
mLiveRoom
.
startLocalPreview
(
true
,
videoView
.
videoView
);
mLiveRoom
.
startRemoteView
(
item
,
mTXCloudVideoView
,
new
IMLVBLiveRoomListener
.
PlayCallback
()
{
@Override
public
void
onBegin
()
{
}
@Override
public
void
onError
(
int
errCode
,
String
errInfo
)
{
}
@Override
public
void
onEvent
(
int
event
,
Bundle
param
)
{
}
});
//开启远端视频渲染
}
/**
* 加载主播头像
...
...
@@ -206,12 +230,57 @@ public class TCCameraAnchorActivity extends TCBaseAnchorActivity {
@Override
protected
void
stopPublish
()
{
//踢出连麦人
// if (mPusherList != null && mPusherList.size() > 0) {
// for (AnchorInfo user : mPusherList){
// mLiveRoom.kickoutJoinAnchor(user.userID);
// onAnchorExit(user);
// }
// }
super
.
stopPublish
();
if
(
mAudioCtrl
!=
null
)
{
mAudioCtrl
.
unInit
();
mAudioCtrl
.
setPusher
(
null
);
mAudioCtrl
=
null
;
}
}
/**
* 取消连麦弹框
*
*/
public
void
showExitAnchorDialog
(
String
msg
)
{
AlertDialog
.
Builder
builder
=
new
AlertDialog
.
Builder
(
this
,
R
.
style
.
ConfirmDialogStyle
);
builder
.
setCancelable
(
true
);
builder
.
setTitle
(
msg
);
builder
.
setPositiveButton
(
"确定"
,
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
dialog
.
dismiss
();
stopAnchor
();
}
});
builder
.
setNegativeButton
(
"取消"
,
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
dialog
.
dismiss
();
}
});
AlertDialog
alertDialog
=
builder
.
create
();
alertDialog
.
show
();
alertDialog
.
setCanceledOnTouchOutside
(
false
);
}
private
void
stopAnchor
()
{
//踢出连麦人
if
(
mPusherList
!=
null
&&
mPusherList
.
size
()
>
0
)
{
for
(
AnchorInfo
user
:
mPusherList
){
mLiveRoom
.
kickoutJoinAnchor
(
user
.
userID
);
onAnchorExit
(
user
);
}
}
}
@Override
...
...
@@ -323,7 +392,7 @@ public class TCCameraAnchorActivity extends TCBaseAnchorActivity {
return
;
}
if
(
mPusherList
.
size
()
>=
3
)
{
if
(
mPusherList
.
size
()
>=
1
)
{
mLiveRoom
.
responseJoinAnchor
(
pusherInfo
.
userID
,
false
,
"主播端连麦人数超过最大限制"
);
return
;
}
...
...
@@ -359,6 +428,9 @@ public class TCCameraAnchorActivity extends TCBaseAnchorActivity {
if
(
null
!=
mAudioCtrl
&&
mAudioCtrl
.
getVisibility
()
!=
View
.
GONE
&&
ev
.
getRawY
()
<
mAudioCtrl
.
getTop
())
{
mAudioCtrl
.
setVisibility
(
View
.
GONE
);
}
if
(
null
!=
mBeautyControl
&&
mBeautyControl
.
getVisibility
()
!=
View
.
GONE
&&
ev
.
getRawY
()
<
mBeautyControl
.
getTop
())
{
mBeautyControl
.
setVisibility
(
View
.
GONE
);
}
return
super
.
dispatchTouchEvent
(
ev
);
}
...
...
@@ -449,7 +521,11 @@ public class TCCameraAnchorActivity extends TCBaseAnchorActivity {
}
}
else
if
(
i
==
R
.
id
.
btn_close
)
{
if
(
mPusherList
!=
null
&&
mPusherList
.
size
()
>
0
)
{
showExitAnchorDialog
(
"当前正在连麦,是否结束连麦?"
);
}
else
{
showExitInfoDialog
(
"当前正在直播,是否退出直播?"
,
false
);
}
}
else
if
(
i
==
R
.
id
.
btn_audio_ctrl
)
{
if
(
null
!=
mAudioCtrl
)
{
...
...
This diff is collapsed.
Click to expand it.
liveModule/src/main/java/com/dayu/livemodule/xiaozhibo/audience/TCAudienceActivity.java
View file @
111203fe
...
...
@@ -656,7 +656,7 @@ public class TCAudienceActivity extends Activity implements IMLVBLiveRoomListene
@Override
public
void
onKickoutJoinAnchor
()
{
Toast
.
makeText
(
getApplicationContext
(),
"不好意思,
您被主播踢开
"
,
Toast
.
LENGTH_LONG
).
show
();
Toast
.
makeText
(
getApplicationContext
(),
"不好意思,
主播已断开连麦
"
,
Toast
.
LENGTH_LONG
).
show
();
stopLinkMic
();
}
...
...
This diff is collapsed.
Click to expand it.
liveModule/src/main/res/layout/activity_audience.xml
View file @
111203fe
This diff is collapsed.
Click to expand it.
liveModule/src/main/res/layout/activity_camera_anchor.xml
View file @
111203fe
This diff is collapsed.
Click to expand it.
liveModule/src/main/res/layout/dialog_publish_detail.xml
View file @
111203fe
...
...
@@ -30,6 +30,11 @@
android:text=
"@string/live_time_tips"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<LinearLayout
android:visibility=
"gone"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<!-- 观看人数 -->
<TextView
android:id=
"@+id/tv_members"
...
...
@@ -63,6 +68,7 @@
android:text=
"@string/live_admires_tips"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
<TextView
android:id=
"@+id/anchor_btn_cancel"
android:layout_marginTop=
"50dp"
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment