Class ZegoScreenCaptureFactory


  • public class ZegoScreenCaptureFactory
    extends ZegoVideoCaptureFactory

    简单的录屏工厂实现。

    使用该工厂时,可通过系统提供的 MediaProjection 类完成录屏功能,常用于游戏直播等。

    Copyright © 2016 Zego. All rights reserved.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int SCREEN_CAPTURE_SIZE_DEFAULT
      表示默认的屏幕采集分辨率,即当前屏幕的实际分辨率,
    • Constructor Summary

      Constructors 
      Constructor Description
      ZegoScreenCaptureFactory​(android.content.Context context)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      ZegoVideoCaptureDevice create​(java.lang.String device_id)
      返回一个外部采集设备
      void destroy​(ZegoVideoCaptureDevice vc)
      当某个外部采集设备不需要时,通知调用者释放设备占用的资源
      void setCaptureResolution​(int captureWidth, int captureHeight)
      设置屏幕采集的分辨率,默认值为当前屏幕宽高。
      void setMediaProjection​(android.media.projection.MediaProjection mediaProjection)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • SCREEN_CAPTURE_SIZE_DEFAULT

        public static final int SCREEN_CAPTURE_SIZE_DEFAULT
        表示默认的屏幕采集分辨率,即当前屏幕的实际分辨率,
        See Also:
        Constant Field Values
    • Constructor Detail

      • ZegoScreenCaptureFactory

        public ZegoScreenCaptureFactory​(android.content.Context context)
    • Method Detail

      • create

        public ZegoVideoCaptureDevice create​(java.lang.String device_id)
        Description copied from class: ZegoVideoCaptureFactory
        返回一个外部采集设备

        注意:一定不能返回 null 对象,否则会崩溃。在 SDK 线程内执行,不要在其中直接调用 SDK 的接口,如有必要可切换线程后再调用。

        Specified by:
        create in class ZegoVideoCaptureFactory
        Parameters:
        device_id - 设备 ID,用于标识一个唯一设备
        Returns:
        外部采集设备,不能为空对象
      • destroy

        public void destroy​(ZegoVideoCaptureDevice vc)
        Description copied from class: ZegoVideoCaptureFactory
        当某个外部采集设备不需要时,通知调用者释放设备占用的资源

        注意:在 SDK 线程内执行,不要在其中直接调用 SDK 的接口,如有必要可切换线程后再调用。

        Specified by:
        destroy in class ZegoVideoCaptureFactory
        Parameters:
        vc - 外部采集设备
      • setMediaProjection

        public void setMediaProjection​(android.media.projection.MediaProjection mediaProjection)
      • setCaptureResolution

        public void setCaptureResolution​(int captureWidth,
                                         int captureHeight)
        设置屏幕采集的分辨率,默认值为当前屏幕宽高。

        注意,如果设置的分辨率跟屏幕的分辨率比例不一致,会出现黑边的情况,建议使用默认值。 该功能是在4月9日官网版本上添加的,如果之前有使用了屏幕采集功能,并不想影响之前的效果,可以设置为之前的默认值 360*640

        为了保证推流的画面不被拉伸,建议保持编码分辨率宽高比例跟屏幕宽高比例一致。默认情况下,SDK内部通过获取 Display 对象,并调用 Display.getRealMetrics(DisplayMetrics) 确定屏幕采集的宽高 同时请保证编码分辨率的宽是16的倍数,否则硬编情况下,有可能出现画面不正常的情况。

        Parameters:
        captureWidth - 屏幕采集的宽,默认值当前屏幕的宽
        captureHeight - 屏幕采集的高,默认值当前屏幕的高