public class SurfaceViewRenderer extends SurfaceView implements VideoSink, RendererCommon.RendererEvents
限定符和类型 | 字段和说明 |
---|---|
static Activity |
activity |
构造器和说明 |
---|
SurfaceViewRenderer(Context context)
Standard View constructor.
|
SurfaceViewRenderer(Context context,
AttributeSet attrs)
Standard View constructor.
|
限定符和类型 | 方法和说明 |
---|---|
void |
addFrameListener(EglRenderer.FrameListener listener,
float scale)
Register a callback to be invoked when a new video frame has been received.
|
void |
addFrameListener(EglRenderer.FrameListener listener,
float scale,
RendererCommon.GlDrawer drawerParam)
Register a callback to be invoked when a new video frame has been received.
|
void |
clearImage()
Post a task to clear the SurfaceView to a transparent uniform color.
|
void |
disableFpsReduction() |
void |
enableMeasure(boolean enableMeasure) |
EglRenderer |
getEglRenderer() |
void |
init(EglBase.Context sharedContext,
RendererCommon.RendererEvents rendererEvents)
Initialize this class, sharing resources with |sharedContext|.
|
void |
init(EglBase.Context sharedContext,
RendererCommon.RendererEvents rendererEvents,
int[] configAttributes,
RendererCommon.GlDrawer drawer)
Initialize this class, sharing resources with |sharedContext|.
|
void |
onFirstFrameRendered()
Callback fired once first frame is rendered.
|
void |
onFrame(VideoFrame frame)
Implementations should call frame.retain() if they need to hold a reference to the frame after
this function returns.
|
void |
onFrameResolutionChanged(int videoWidth,
int videoHeight,
int rotation)
Callback fired when rendered frame resolution or rotation has changed.
|
protected void |
onLayout(boolean changed,
int left,
int top,
int right,
int bottom) |
protected void |
onMeasure(int widthSpec,
int heightSpec) |
void |
pauseVideo() |
void |
release()
Block until any pending frame is returned and all GL resources released, even if an interrupt
occurs.
|
void |
removeFrameListener(EglRenderer.FrameListener listener) |
void |
setEnableHardwareScaler(boolean enabled)
Enables fixed size for the surface.
|
void |
setFpsReduction(float fps)
Limit render framerate.
|
void |
setMirror(boolean mirror)
Set if the video stream should be mirrored or not.
|
void |
setScalingType(RendererCommon.ScalingType scalingType)
Set how the video will fill the allowed layout area.
|
void |
setScalingType(RendererCommon.ScalingType scalingTypeMatchOrientation,
RendererCommon.ScalingType scalingTypeMismatchOrientation) |
void |
surfaceChanged(SurfaceHolder holder,
int format,
int width,
int height) |
void |
surfaceCreated(SurfaceHolder holder) |
void |
surfaceDestroyed(SurfaceHolder holder) |
public SurfaceViewRenderer(Context context)
public SurfaceViewRenderer(Context context, AttributeSet attrs)
public EglRenderer getEglRenderer()
public void init(EglBase.Context sharedContext, RendererCommon.RendererEvents rendererEvents)
public void init(EglBase.Context sharedContext, RendererCommon.RendererEvents rendererEvents, int[] configAttributes, RendererCommon.GlDrawer drawer)
public void release()
public void addFrameListener(EglRenderer.FrameListener listener, float scale, RendererCommon.GlDrawer drawerParam)
listener
- The callback to be invoked. The callback will be invoked on the render thread.
It should be lightweight and must not call removeFrameListener.scale
- The scale of the Bitmap passed to the callback, or 0 if no Bitmap is
required.drawer
- Custom drawer to use for this frame listener.public void addFrameListener(EglRenderer.FrameListener listener, float scale)
listener
- The callback to be invoked. The callback will be invoked on the render thread.
It should be lightweight and must not call removeFrameListener.scale
- The scale of the Bitmap passed to the callback, or 0 if no Bitmap is
required.public void removeFrameListener(EglRenderer.FrameListener listener)
public void setEnableHardwareScaler(boolean enabled)
public void setMirror(boolean mirror)
public void setScalingType(RendererCommon.ScalingType scalingType)
public void setScalingType(RendererCommon.ScalingType scalingTypeMatchOrientation, RendererCommon.ScalingType scalingTypeMismatchOrientation)
public void setFpsReduction(float fps)
fps
- Limit render framerate to this value, or use Float.POSITIVE_INFINITY to disable fps
reduction.public void disableFpsReduction()
public void pauseVideo()
public void onFrame(VideoFrame frame)
VideoSink
protected void onMeasure(int widthSpec, int heightSpec)
protected void onLayout(boolean changed, int left, int top, int right, int bottom)
public void surfaceCreated(SurfaceHolder holder)
public void surfaceDestroyed(SurfaceHolder holder)
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
public void clearImage()
public void onFirstFrameRendered()
RendererCommon.RendererEvents
public void onFrameResolutionChanged(int videoWidth, int videoHeight, int rotation)
RendererCommon.RendererEvents
public void enableMeasure(boolean enableMeasure)