public class ScreenCapturer extends java.lang.Object implements VideoCapturer
LocalVideoTrack
from a
device's screen. The frames are provided via the MediaProjection
api. This capturer is
only compatible with Build.VERSION_CODES.LOLLIPOP
or higher.
This class represents an implementation of a VideoCapturer
interface. Although public,
these methods are not meant to be invoked directly.
Note: This capturer can be reused, but cannot be shared across multiple LocalVideoTrack
s simultaneously.
Modifier and Type | Class and Description |
---|---|
static interface |
ScreenCapturer.Listener
Interface that provides events and errors related to
ScreenCapturer . |
Constructor and Description |
---|
ScreenCapturer(android.content.Context context,
int screenCaptureIntentResult,
android.content.Intent screenCaptureIntentData,
ScreenCapturer.Listener screenCapturerListener) |
Modifier and Type | Method and Description |
---|---|
void |
dispose()
This method provides an optional step to perform a final cleanup.
|
VideoFormat |
getCaptureFormat() |
void |
initialize(SurfaceTextureHelper surfaceTextureHelper,
android.content.Context context,
CapturerObserver capturerObserver)
This function is used to initialize the camera thread, the android application context, and the
capture observer.
|
boolean |
isScreencast()
Indicates that the screen capturer is a screencast.
|
void |
startCapture(int width,
int height,
int framerate)
Start capturing frames in a format that is as close as possible to
width x height and
framerate . |
void |
stopCapture()
Stops all frames being captured.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
changeCaptureFormat
public ScreenCapturer(@NonNull android.content.Context context, int screenCaptureIntentResult, @NonNull android.content.Intent screenCaptureIntentData, @Nullable ScreenCapturer.Listener screenCapturerListener)
public VideoFormat getCaptureFormat()
public boolean isScreencast()
isScreencast
in interface VideoCapturer
public void initialize(@NonNull SurfaceTextureHelper surfaceTextureHelper, @NonNull android.content.Context context, @NonNull CapturerObserver capturerObserver)
VideoCapturer
surfaceTextureHelper
, register itself as a listener, and forward the frames to
CapturerObserver.onFrameCaptured(). The caller still has ownership of surfaceTextureHelper
and is responsible for making sure surfaceTextureHelper.dispose() is
called. This also means that the caller can reuse the SurfaceTextureHelper to initialize a new
VideoCapturer once the previous VideoCapturer has been disposed.initialize
in interface VideoCapturer
public void startCapture(int width, int height, int framerate)
VideoCapturer
width x height
and
framerate
.startCapture
in interface VideoCapturer
public void stopCapture()
MediaProjection
should be available for use upon
completion.
Note: This method is not meant to be invoked directly.
stopCapture
in interface VideoCapturer
public void dispose()
VideoCapturer
dispose
in interface VideoCapturer
7.0.0