ScreenCapturerAndroid
An implementation of VideoCapturer to capture the screen content as a video stream. Capturing is done by MediaProjection
on a SurfaceTexture
. We interact with this SurfaceTexture
using a SurfaceTextureHelper
. The SurfaceTextureHelper
is created by the native code and passed to this capturer in VideoCapturer.initialize()
. On receiving a new frame, this capturer passes it as a texture to the native code via CapturerObserver.onFrameCaptured()
. This takes place on the HandlerThread of the given SurfaceTextureHelper
. When done with each frame, the native code returns the buffer to the SurfaceTextureHelper
to be used for new frames. At any time, at most one frame is being processed.
Constructors
Link copied to clipboard
constructor(mediaProjectionPermissionResultData: Intent, mediaProjectionCallback: MediaProjection.Callback)
Constructs a new Screen Capturer.
Functions
Link copied to clipboard
Changes output video format.
Link copied to clipboard
open fun initialize(surfaceTextureHelper: SurfaceTextureHelper, applicationContext: Context, capturerObserver: CapturerObserver)
This function is used to initialize the camera thread, the android application context, and the capture observer.
Link copied to clipboard
Link copied to clipboard
Implementations should call frame.retain() if they need to hold a reference to the frame after this function returns.
Link copied to clipboard
Start capturing frames in a format that is as close as possible to
width x height
and framerate
.Link copied to clipboard
Stop capturing.