diff --git a/gradle.properties b/gradle.properties index 2341123..7a8681e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -29,7 +29,7 @@ isBuildModule=false android.injected.testOnly=false APP_VERSION_NAME=1.2.7 -APP_VERSION_CODE=179 +APP_VERSION_CODE=180 org.gradle.jvm.toolchain.useLegacyAdapters=false #org.gradle.java.home=C\:\\Users\\qx\\.jdks\\ms-17.0.15 diff --git a/moduleUtil/build.gradle b/moduleUtil/build.gradle index 71405d7..6b150bb 100644 --- a/moduleUtil/build.gradle +++ b/moduleUtil/build.gradle @@ -184,7 +184,7 @@ dependencies { // api( 'io.agora.rtc:agora-special-full:4.1.1.29') api('com.github.AgoraIO-Community:LyricsView:1.1.3') //声网集成屏幕共享 - def agora_sdk_version = "4.5.2" + def agora_sdk_version = "4.6.0" api "io.agora.rtc:full-sdk:${agora_sdk_version}" // api("io.agora.rtc:lite-sdk:${agora_sdk_version}") // api ("io.agora.rtc:voice-sdk:${agora_sdk_version}") diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/AgoraManager.java b/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/AgoraManager.java index af4c5db..0622207 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/AgoraManager.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/AgoraManager.java @@ -2,25 +2,33 @@ package com.xscm.moduleutil.rtc; import static com.blankj.utilcode.util.SnackbarUtils.getView; +import static io.agora.rtc2.video.VideoEncoderConfiguration.*; import static io.agora.rtc2.video.VideoEncoderConfiguration.FRAME_RATE.FRAME_RATE_FPS_15; -import static io.agora.rtc2.video.VideoEncoderConfiguration.ORIENTATION_MODE.ORIENTATION_MODE_ADAPTIVE; -import static io.agora.rtc2.video.VideoEncoderConfiguration.STANDARD_BITRATE; -import static io.agora.rtc2.video.VideoEncoderConfiguration.VD_640x360; +import static io.agora.rtc2.video.VideoEncoderConfiguration.FRAME_RATE.FRAME_RATE_FPS_30; +import static io.agora.rtc2.video.VideoEncoderConfiguration.ORIENTATION_MODE.*; import android.annotation.SuppressLint; +import android.app.Activity; import android.content.Context; +import android.content.Intent; +import android.hardware.SensorManager; +import android.media.projection.MediaProjection; +import android.media.projection.MediaProjectionManager; import android.os.Handler; import android.os.Looper; +import android.util.DisplayMetrics; import android.util.Log; +import android.view.Display; +import android.view.OrientationEventListener; import android.view.SurfaceView; +import android.view.WindowManager; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.blankj.utilcode.util.GsonUtils; -import com.blankj.utilcode.util.LogUtils; -import com.blankj.utilcode.util.PathUtils; -import com.blankj.utilcode.util.ThreadUtils; +import com.blankj.utilcode.util.*; import com.liulishuo.okdownload.DownloadTask; import com.liulishuo.okdownload.StatusUtil; import com.liulishuo.okdownload.core.cause.EndCause; @@ -43,6 +51,7 @@ import org.greenrobot.eventbus.EventBus; import java.io.File; import java.io.FileInputStream; +import java.lang.reflect.Field; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; @@ -206,21 +215,50 @@ public class AgoraManager { /*Enable video module*/ rtcEngine.enableVideo(); // Setup video encoding configs - rtcEngine.setVideoEncoderConfiguration(new VideoEncoderConfiguration( - VD_640x360, - FRAME_RATE_FPS_15, - STANDARD_BITRATE, - ORIENTATION_MODE_ADAPTIVE - )); +// rtcEngine.setVideoEncoderConfiguration(new VideoEncoderConfiguration( +// VD_640x360, +// FRAME_RATE_FPS_30, +// STANDARD_BITRATE, +// ORIENTATION_MODE_FIXED_PORTRAIT +// )); + + + /*Set up to play remote sound with receiver*/ rtcEngine.setDefaultAudioRoutetoSpeakerphone(true); + + +// OrientationEventListener orientationListener = new OrientationEventListener(context, +// SensorManager.SENSOR_DELAY_NORMAL) { +// @Override +// public void onOrientationChanged(int orientation) { +// int angle = calculateScreenAngle(orientation); +// try { +// rtcEngine.setVideoOrientation(angle); // 通知声网引擎调整视频方向 +// } catch (Exception e) { +// Log.e("AgoraManager", "Set video orientation failed", e); +// } +// } +// }; +// orientationListener.enable(); // 启用监听 + } catch (Exception e) { Log.e("AgoraManager", "Failed to configure RtcEngine", e); } } } } - + public static int calculateScreenAngle(int orientation) { + if (orientation >= 315 || orientation < 45) { + return 0; // 竖屏(0度) + } else if (orientation >= 45 && orientation < 135) { + return 90; // 横屏右(90度) + } else if (orientation >= 135 && orientation < 225) { + return 180; // 倒竖屏(180度) + } else { + return 270; // 横屏左(270度) + } + } /** * 加入语音聊天房间 */ @@ -802,14 +840,58 @@ public class AgoraManager { // rtcEngine.setDefaultAudioRoutetoSpeakerphone(true); ScreenCaptureParameters screenCaptureParameters = new ScreenCaptureParameters(); +// screenCaptureParameters.captureVideo = true; +// screenCaptureParameters.videoCaptureParameters.width = 1440; +// screenCaptureParameters.videoCaptureParameters.height = 1940; +// screenCaptureParameters.videoCaptureParameters.framerate = 15; +// screenCaptureParameters.captureAudio = true; +// screenCaptureParameters.audioCaptureParameters.captureSignalVolume = 50; +//// screenCaptureParameters.videoCaptureParameters.bitrate = 500; +// rtcEngine.startScreenCapture(screenCaptureParameters); + WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + Display display = manager.getDefaultDisplay(); + + DisplayMetrics outMetrics=new DisplayMetrics(); + display.getMetrics(outMetrics); + +// // 设置屏幕采集的参数 screenCaptureParameters.captureVideo = true; - screenCaptureParameters.videoCaptureParameters.width = 720; - screenCaptureParameters.videoCaptureParameters.height = 920; + screenCaptureParameters.videoCaptureParameters.width = outMetrics.widthPixels; + screenCaptureParameters.videoCaptureParameters.height = outMetrics.heightPixels; +// screenCaptureParameters.videoCaptureParameters.height = (int) (3840 * 1.0f / outMetrics.widthPixels * outMetrics.heightPixels); screenCaptureParameters.videoCaptureParameters.framerate = 15; screenCaptureParameters.captureAudio = true; - screenCaptureParameters.audioCaptureParameters.captureSignalVolume = 50; - + screenCaptureParameters.audioCaptureParameters.captureSignalVolume =50; + screenCaptureParameters.videoCaptureParameters.contentHint=1 ; + rtcEngine.setVideoEncoderConfiguration(new VideoEncoderConfiguration( + VD_360x360, + FRAME_RATE_FPS_15, + STANDARD_BITRATE, + ORIENTATION_MODE_FIXED_PORTRAIT + )); rtcEngine.startScreenCapture(screenCaptureParameters); + + } + } + + + public void setExternalMediaProjection(MediaProjection[] mediaProjection){ + rtcEngine.setExternalMediaProjection(mediaProjection[0]); + } + + public void isPost(){ + if (rtcEngine != null){ + ScreenCaptureParameters screenCaptureParameters = new ScreenCaptureParameters(); + +// 设置新的屏幕共享参数 + screenCaptureParameters.captureVideo = true; + screenCaptureParameters.videoCaptureParameters.width = 1280; + screenCaptureParameters.videoCaptureParameters.height = 720; + screenCaptureParameters.videoCaptureParameters.framerate = 30; + +// 更新屏幕共享参数 + rtcEngine.updateScreenCaptureParameters(screenCaptureParameters); + } } diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomMakeWheatView.java b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomMakeWheatView.java index eda90ab..d2877a3 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomMakeWheatView.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomMakeWheatView.java @@ -145,6 +145,7 @@ public class RoomMakeWheatView extends BaseWheatView { iv_tag_type.setVisibility(GONE); mCharmView.setVisibility(GONE); mTvName.setText(pitBean.getNickname()!=null && !pitBean.getNickname().equals("")?pitBean.getNickname():"拍卖者"); + mTvName.setBackgroundResource(com.xscm.moduleutil.R.mipmap.za_maiw_b); }else if (pitBean.getPit_number().equals("9")){ iv_tag_type.setVisibility(VISIBLE); mCharmView.setVisibility(GONE); diff --git a/moduleUtil/src/main/res/mipmap-xxxhdpi/cabin_bj.webp b/moduleUtil/src/main/res/mipmap-xxxhdpi/cabin_bj.webp index 5a26f9d..53f67b9 100644 Binary files a/moduleUtil/src/main/res/mipmap-xxxhdpi/cabin_bj.webp and b/moduleUtil/src/main/res/mipmap-xxxhdpi/cabin_bj.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xxxhdpi/firsh_bj.webp b/moduleUtil/src/main/res/mipmap-xxxhdpi/firsh_bj.webp index 48f73ec..b41481d 100644 Binary files a/moduleUtil/src/main/res/mipmap-xxxhdpi/firsh_bj.webp and b/moduleUtil/src/main/res/mipmap-xxxhdpi/firsh_bj.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xxxhdpi/za_m.webp b/moduleUtil/src/main/res/mipmap-xxxhdpi/za_m.webp index a547d6c..5ba2ef2 100644 Binary files a/moduleUtil/src/main/res/mipmap-xxxhdpi/za_m.webp and b/moduleUtil/src/main/res/mipmap-xxxhdpi/za_m.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xxxhdpi/za_maiw_b.png b/moduleUtil/src/main/res/mipmap-xxxhdpi/za_maiw_b.png new file mode 100644 index 0000000..8036144 Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xxxhdpi/za_maiw_b.png differ diff --git a/moduleUtil/src/main/res/mipmap-xxxhdpi/za_maiw_o.png b/moduleUtil/src/main/res/mipmap-xxxhdpi/za_maiw_o.png new file mode 100644 index 0000000..988c3d1 Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xxxhdpi/za_maiw_o.png differ diff --git a/moduleroom/src/main/java/com/example/moduleroom/activity/RoomActivity.kt b/moduleroom/src/main/java/com/example/moduleroom/activity/RoomActivity.kt index addde22..0e63539 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/activity/RoomActivity.kt +++ b/moduleroom/src/main/java/com/example/moduleroom/activity/RoomActivity.kt @@ -1096,8 +1096,8 @@ class RoomActivity : BaseMvpActivity(), val params = layoutParams params.width = ConstraintLayout.LayoutParams.MATCH_CONSTRAINT params.height = ConstraintLayout.LayoutParams.MATCH_CONSTRAINT - params.horizontalBias = 0.5f - params.verticalBias = 0.5f +// params.horizontalBias = 0.5f +// params.verticalBias = 0.5f floatingMagnetView!!.layoutParams = params } else { // 如果不是ConstraintLayout.LayoutParams,创建新的 @@ -3931,10 +3931,13 @@ class RoomActivity : BaseMvpActivity(), val roomBean = resp.room_info + if (roomBean!!.type_id.equals("6")){ + return + } this.mRoomBean = roomBean this.mRoomUserBean = resp.user_info this.mRoomOwnerBean = resp.room_owner - this.mPitList = mRoomBean!!.pit_list + this.mPitList = mRoomBean!!.pit_list!! ImageUtils.loadHeadCC(resp.room_info.room_cover, mBinding!!.roomTop.avatar) mBinding!!.roomTop.name.text = roomBean.room_name diff --git a/moduleroom/src/main/java/com/example/moduleroom/fragment/RoomAuctionFragment.java b/moduleroom/src/main/java/com/example/moduleroom/fragment/RoomAuctionFragment.java index 68601a1..02ecfb5 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/fragment/RoomAuctionFragment.java +++ b/moduleroom/src/main/java/com/example/moduleroom/fragment/RoomAuctionFragment.java @@ -680,10 +680,13 @@ public class RoomAuctionFragment extends BaseMvpFragment mediaProjectionLauncher = registerForActivityResult( +// new ActivityResultContracts.StartActivityForResult(), result -> { +// if (result.getResultCode() == Activity.RESULT_OK) { +// try { +// // 获取申请到的 MediaProjection +// mediaProjection[0] = mediaProjectionManager +// .getMediaProjection(result.getResultCode(), result.getData()); +// // r MediaProjection,需要在 startScreenCapture 之前调用 +// +// AgoraManager.getInstance(getActivity()).setExternalMediaProjection(mediaProjection); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// } +// ); + // 请求屏幕捕获 + private void requestScreenCapture() { +// Intent intent = mediaProjectionManager.createScreenCaptureIntent(); +// mediaProjectionLauncher.launch(intent); + } public void handleMsgType1028(RoomMessageEvent messageEvent){ if (messageEvent.getMsgType()==1028){ mBinding.tvHeartValue2.setText(messageEvent.getText().getHot_value()); @@ -417,6 +441,7 @@ public class RoomCabinFragment extends BaseRoomFragment mediaProjectionLauncher = registerForActivityResult( - new ActivityResultContracts.StartActivityForResult(), - result -> { - if (result.getResultCode() == Activity.RESULT_OK) { - try { - mediaProjection[0] = mediaProjectionManager - .getMediaProjection(result.getResultCode(), result.getData()); - joinChannel(); - } catch (Exception e) { - Log.e("RoomCabinFragment", "error msg: " + e.getMessage()); - } - } - } - ); +// private MediaProjection[] mediaProjection = new MediaProjection[1]; +// private MediaProjectionManager mediaProjectionManager; +// private final ActivityResultLauncher mediaProjectionLauncher = registerForActivityResult( +// new ActivityResultContracts.StartActivityForResult(), +// result -> { +// if (result.getResultCode() == Activity.RESULT_OK) { +// try { +// mediaProjection[0] = mediaProjectionManager +// .getMediaProjection(result.getResultCode(), result.getData()); +// joinChannel(); +// } catch (Exception e) { +// Log.e("RoomCabinFragment", "error msg: " + e.getMessage()); +// } +// } +// } +// ); private void isConfig() { @@ -818,7 +843,9 @@ public class RoomCabinFragment extends BaseRoomFragment