BRTC 在 Android 系统上支持屏幕分享,即将当前系统的屏幕内容通过 BRTC SDK 分享给房间里的其他用户。
BRTC
通过设置 startScreenCapture() 中的首个参数 encParams ,您可以指定屏幕分享的编码质量。如果您指定 encParams 为 null,SDK 会自动使用之前设定的编码参数,我们推荐的参数设定如下:
encParams
从 Android 7.0 系统开始,切入到后台运行的普通 App 进程,但凡有 CPU 活动,都很容易会被系统强杀掉。 所以当 App 在切入到后台默默进行屏幕分享时,通过弹出悬浮窗的方案,可以避免被系统强杀掉。 同时,在手机屏幕上显示悬浮窗也有利于告知用户当前正在做屏幕分享,避免用户泄漏个人隐私。
public void showView(View view, int width, int height) { mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); //TYPE_TOAST仅适用于4.4+系统,假如要支持更低版本使用TYPE_SYSTEM_ALERT(需要在manifest中声明权限) //7.1(包含)及以上系统对TYPE_TOAST做了限制 int type = WindowManager.LayoutParams.TYPE_TOAST; if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) { type = WindowManager.LayoutParams.TYPE_PHONE; } mLayoutParams = new WindowManager.LayoutParams(type); mLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; mLayoutParams.flags |= WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH; mLayoutParams.width = width; mLayoutParams.height = height; mLayoutParams.format = PixelFormat.TRANSLUCENT; mWindowManager.addView(view, mLayoutParams); }
屏幕分享
BRTC 在 Android 系统上支持屏幕分享,即将当前系统的屏幕内容通过 BRTC SDK 分享给房间里的其他用户。
启动屏幕分享
BRTC
中的 startScreenCapture() 接口即可。但如果要达到稳定和清晰的分享效果,您需要关注如下三个问题:设定视频编码参数
通过设置 startScreenCapture() 中的首个参数
encParams
,您可以指定屏幕分享的编码质量。如果您指定encParams
为 null,SDK 会自动使用之前设定的编码参数,我们推荐的参数设定如下:弹出悬浮窗以避免被强杀
从 Android 7.0 系统开始,切入到后台运行的普通 App 进程,但凡有 CPU 活动,都很容易会被系统强杀掉。 所以当 App 在切入到后台默默进行屏幕分享时,通过弹出悬浮窗的方案,可以避免被系统强杀掉。 同时,在手机屏幕上显示悬浮窗也有利于告知用户当前正在做屏幕分享,避免用户泄漏个人隐私。
观看屏幕分享
常见问题