继承自 io.agora.rtc.mediaio.IVideoFrameConsumer .
Public 成员函数 | |
boolean | onInitialize () |
boolean | onStart () |
void | onStop () |
void | onDispose () |
long | getEGLContextHandle () |
int | getBufferType () |
int | getPixelFormat () |
Public 成员函数 继承自 io.agora.rtc.mediaio.IVideoFrameConsumer | |
void | consumeByteBufferFrame (ByteBuffer buffer, int format, int width, int height, int rotation, long timestamp) |
void | consumeByteArrayFrame (byte[] data, int format, int width, int height, int rotation, long timestamp) |
void | consumeTextureFrame (int textureId, int format, int width, int height, int rotation, long timestamp, float[] matrix) |
IVideoSink 接口。
实时通讯过程中,SDK 通常会启动默认的视频渲染器进行视频渲染。 IVideoSink 接口可以自定义视频渲染器,再通过调用 setLocalVideoRenderer
和 setRemoteVideoRenderer
接口,改变并控制默认的视频渲染器。 IVideoFrameConsumer
提供视频帧数据的传递的接口,Media Engine 通过它把视频帧数据送给渲染器。
boolean io.agora.rtc.mediaio.IVideoSink.onInitialize | ( | ) |
初始化渲染器。
Media Engine 初始化渲染器的时候调用这个方法。
开发者可以在这个方法中做渲染器的初始化工作。如果是耗时操作,也可以提前初始化好,然后在这个方法中告知 Media Engine 自定义渲染器已初始化好。该方法需要开发者自己输入 true 或 false,以告知 Media Engine 自定义渲染器的状态。
boolean io.agora.rtc.mediaio.IVideoSink.onStart | ( | ) |
启动渲染器。
Media Engine 在开启渲染功能的时候会回调这个方法。开发者可以在这个方法中启动渲染器。该方法需要开发者输入 true 或 false,Media Engine 会根据返回值做对应的动作。
void io.agora.rtc.mediaio.IVideoSink.onStop | ( | ) |
停止渲染器。
Media Engine 在停止渲染功能的时候会回调这个方法。开发者可以在这个方法中停止渲染。
void io.agora.rtc.mediaio.IVideoSink.onDispose | ( | ) |
释放渲染器。
Media Engine 通知开发者渲染器即将被废弃。在 onDispose() 返回之后,开发者就可以释放掉资源了。
long io.agora.rtc.mediaio.IVideoSink.getEGLContextHandle | ( | ) |
获取 EGLContextHandle。
Media Engine 在需要创建 EGLContext 的时候,首先会从自定义的渲染器中查询,是都已经创建了 EGLContext。如果自定义渲染器中已经创建了并管理 EGL 环境,这个方法就会返回 EGLContext 的 Native Handle 并共享给 Media Engine。如果自定义渲染器中没有创建 EGLContext,会返回 0。
int io.agora.rtc.mediaio.IVideoSink.getBufferType | ( | ) |
int io.agora.rtc.mediaio.IVideoSink.getPixelFormat | ( | ) |
获取像素格式。
用于自定义渲染器的时候,还需要指定视频数据的像素格式。当自定义渲染器希望得到 ByteArray 或者 ByteBuffer 类型的视频数据时,可以选择 YUV(YUV420P)或 RGBA 格式;当自定义渲染器希望直接得到 Texture 时,也可以选择 Texture。