add[声望升级-游戏房判断声网或者融云]

This commit is contained in:
Martin
2024-05-22 13:32:05 +08:00
parent 3167ab0be8
commit dc0ae1124f
12 changed files with 135 additions and 529 deletions

View File

@@ -33,6 +33,7 @@ import io.agora.rtc2.IRtcEngineEventHandler;
import io.agora.rtc2.RtcConnection;
import io.agora.rtc2.RtcEngineConfig;
import io.agora.rtc2.RtcEngineEx;
import io.agora.rtc2.video.ContentInspectConfig;
import io.agora.rtc2.video.VideoCanvas;
import io.agora.rtc2.video.VideoEncoderConfiguration;
@@ -66,6 +67,7 @@ public class SWManager extends BaseCacheManager {
/**
* 获取单列
*
* @return
*/
public static SWManager get() {
@@ -123,7 +125,7 @@ public class SWManager extends BaseCacheManager {
// 创建一个 SurfaceView 对象,并将其作为 FrameLayout 的子对象
SurfaceView surfaceView = new SurfaceView(mContext);
anchorContainer.addView(surfaceView);
Config config = new Config(mContext, mRtcEngine, FURenderer.INSTANCE.mFURenderKit, null, CaptureMode.Agora, 0, false, new CameraConfig(MirrorMode.MIRROR_NONE,MirrorMode.MIRROR_NONE));
Config config = new Config(mContext, mRtcEngine, FURenderer.INSTANCE.mFURenderKit, null, CaptureMode.Agora, 0, false, new CameraConfig(MirrorMode.MIRROR_NONE, MirrorMode.MIRROR_NONE));
faceUnityBeautyAPI.initialize(config);
faceUnityBeautyAPI.enable(false);
@@ -135,17 +137,19 @@ public class SWManager extends BaseCacheManager {
//faceUnityBeautyAPI.updateCameraConfig(new CameraConfig(MirrorMode.MIRROR_NONE,MirrorMode.MIRROR_NONE));
//mRtcEngine.setupLocalVideo(new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_HIDDEN, uid));
setEnableBeauty(true); //默认开启美颜
setContentInspect(); //开启视频截图上传
}
public void setEnableBeauty(boolean flag){
if(faceUnityBeautyAPI!=null){
public void setEnableBeauty(boolean flag) {
if (faceUnityBeautyAPI != null) {
faceUnityBeautyAPI.enable(flag);
}
}
/**
* 设置清晰度
*
* @param selectClarity
*/
public void setDimensions(int selectClarity) {
@@ -175,12 +179,12 @@ public class SWManager extends BaseCacheManager {
/**
* 设置镜像模式
*/
public void setMirrorMode(){
if(cfg!=null&&mRtcEngine!=null){
L.eSw("setMirrorMode设置镜像"+cfg.mirrorMode);
if(cfg.mirrorMode==VideoEncoderConfiguration.MIRROR_MODE_TYPE.MIRROR_MODE_ENABLED){
public void setMirrorMode() {
if (cfg != null && mRtcEngine != null) {
L.eSw("setMirrorMode设置镜像" + cfg.mirrorMode);
if (cfg.mirrorMode == VideoEncoderConfiguration.MIRROR_MODE_TYPE.MIRROR_MODE_ENABLED) {
cfg.mirrorMode = VideoEncoderConfiguration.MIRROR_MODE_TYPE.MIRROR_MODE_DISABLED; //取消镜像
}else{
} else {
cfg.mirrorMode = VideoEncoderConfiguration.MIRROR_MODE_TYPE.MIRROR_MODE_ENABLED; //设置镜像
}
mRtcEngine.setVideoEncoderConfiguration(cfg);
@@ -190,11 +194,23 @@ public class SWManager extends BaseCacheManager {
}
}
public void setContentInspect() {
ContentInspectConfig config = new ContentInspectConfig();
config.extraInfo = "YourExtraInfo";
config.moduleCount = 1;
// 功能模块的类型为视频截图上传
config.modules[0].type = ContentInspectConfig.CONTENT_INSPECT_TYPE_SUPERVISE;
// 视频截图上传的频率为 2 秒一次
config.modules[0].interval = 2;
mRtcEngine.enableContentInspect(true, config);
}
/**
* 设置镜像模式
* 设置前後攝像頭
*/
public void switchCamera(){
if(mRtcEngine!=null){
public void switchCamera() {
if (mRtcEngine != null) {
mRtcEngine.switchCamera();
}
}
@@ -212,6 +228,7 @@ public class SWManager extends BaseCacheManager {
/**
* 更新主播视图
*
* @param frameLayout
*/
public void updateMyChannelView(FrameLayout frameLayout) {
@@ -220,13 +237,14 @@ public class SWManager extends BaseCacheManager {
surfaceView.setZOrderMediaOverlay(true);
frameLayout.addView(surfaceView);
VideoCanvas videoCanvas = new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_HIDDEN , uid);
VideoCanvas videoCanvas = new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_HIDDEN, uid);
mRtcEngine.setupLocalVideo(videoCanvas);
}
/**
* PK-加入对方主播直播间
*
* @param strUid
* @param token
* @param toUid
@@ -264,7 +282,7 @@ public class SWManager extends BaseCacheManager {
SurfaceView surfaceView = new SurfaceView(mContext);
surfaceView.setZOrderMediaOverlay(true);
pkContainer.addView(surfaceView);
VideoCanvas videoCanvas = new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_HIDDEN ,Integer.parseInt(toUid));
VideoCanvas videoCanvas = new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_HIDDEN, Integer.parseInt(toUid));
mRtcEngine.setupRemoteVideoEx(videoCanvas, rtcConnection);
}
});
@@ -286,12 +304,13 @@ public class SWManager extends BaseCacheManager {
/**
* PK-加入对方主播直播间
*
* @param strUid
* @param token
* @param toUid
* @param channelName
*/
public void joinChannelDrEx(FrameLayout frameLayout,String strUid, String token, String toUid, String channelName) {
public void joinChannelDrEx(FrameLayout frameLayout, String strUid, String token, String toUid, String channelName) {
int tempUid;
if (StringUtil.isEmpty(strUid)) {
tempUid = 0;
@@ -324,7 +343,7 @@ public class SWManager extends BaseCacheManager {
SurfaceView surfaceView = new SurfaceView(mContext);
surfaceView.setZOrderMediaOverlay(true);
frameLayout.addView(surfaceView);
VideoCanvas videoCanvas = new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_HIDDEN ,Integer.parseInt(toUid));
VideoCanvas videoCanvas = new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_HIDDEN, Integer.parseInt(toUid));
mRtcEngine.setupRemoteVideoEx(videoCanvas, rtcConnection);
}
});
@@ -345,10 +364,11 @@ public class SWManager extends BaseCacheManager {
/**
* 退出对方直播间
* @param uid 自己的ID
*
* @param uid 自己的ID
* @param liveUid 对方直播间号
*/
public void exitChannelToUid(int uid, String liveUid){
public void exitChannelToUid(int uid, String liveUid) {
RtcConnection rtcConnection = new RtcConnection();
rtcConnection.channelId = getChannelName(liveUid); //對方主播的頻道
rtcConnection.localUid = uid;//自己的ID
@@ -358,8 +378,8 @@ public class SWManager extends BaseCacheManager {
/**
* 退出所有频道
*/
public void exitChannelAll(){
if(mRtcEngine!=null){
public void exitChannelAll() {
if (mRtcEngine != null) {
mRtcEngine.leaveChannel();
}
}
@@ -367,6 +387,7 @@ public class SWManager extends BaseCacheManager {
public void setAnchorContainer(FrameLayout anchorContainer) {
this.anchorContainer = anchorContainer;
}
//远程监听
private final IRtcEngineEventHandler mRtcEventHandler = new IRtcEngineEventHandler() {
@Override
@@ -384,7 +405,7 @@ public class SWManager extends BaseCacheManager {
@Override
public void onJoinChannelSuccess(String channel, int uid, int elapsed) {
super.onJoinChannelSuccess(channel, uid, elapsed);
L.eSw("onJoinChannelSuccess 加入频道channel"+channel+" uid:"+uid+" elapsed:"+elapsed);
L.eSw("onJoinChannelSuccess 加入频道channel" + channel + " uid:" + uid + " elapsed:" + elapsed);
if (onRtcEngineListener != null) {
onRtcEngineListener.onOpenSuccess(channel, uid);
}
@@ -393,7 +414,7 @@ public class SWManager extends BaseCacheManager {
@Override
public void onError(int err) {
super.onError(err);
L.eSw("onError 错误码:"+err);
L.eSw("onError 错误码:" + err);
ToastUtil.show("onError:" + err);
}
@@ -420,7 +441,7 @@ public class SWManager extends BaseCacheManager {
@Override
public void onLocalVideoStateChanged(Constants.VideoSourceType source, int state, int error) {
super.onLocalVideoStateChanged(source, state, error);
L.eSw("onLocalVideoStateChanged_source"+source+" state_"+state+" error_"+error);
L.eSw("onLocalVideoStateChanged_source" + source + " state_" + state + " error_" + error);
}
};
@@ -452,10 +473,11 @@ public class SWManager extends BaseCacheManager {
public void setLinkUserContainer(FrameLayout linkUserContainer) {
this.linkUserContainer = linkUserContainer;
}
public static String getChannelName(String liveUid) {
if(liveUid.contains("g")){
if (liveUid.contains("g")) {
return liveUid;
}else{
} else {
return CommonAppConfig.SWChannelPrefix + liveUid;
}
}