继承自 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 接口。

实时通讯过程中,Agora SDK 通常会启动默认的视频渲染器进行视频渲染。 IVideoSink 接口可以自定义视频渲染器,再通过调用 setLocalVideoRenderersetRemoteVideoRenderer 接口,改变并控制默认的视频渲染器。 IVideoFrameConsumer 提供视频帧数据的传递的接口,Media Engine 通过它把视频帧数据送给渲染器。

成员函数说明

◆ onInitialize()

boolean io.agora.rtc.mediaio.IVideoSink.onInitialize ( )

初始化渲染器。

Media Engine 初始化渲染器的时候调用这个方法。

开发者可以在这个方法中做渲染器的初始化工作。如果是耗时操作,也可以提前初始化好,然后在这个方法中告知 Media Engine 自定义渲染器已初始化好。该方法需要开发者自己输入 true 或 false,以告知 Media Engine 自定义渲染器的状态。

返回
  • true:Media Engine 会认为自定义的渲染器已经初始化好
  • false:Media Engine 会认为自定义的渲染器初始化失败,不继续往下运行

◆ onStart()

boolean io.agora.rtc.mediaio.IVideoSink.onStart ( )

启动渲染器。

Media Engine 在开启渲染功能的时候会回调这个方法。开发者可以在这个方法中启动渲染器。该方法需要开发者输入 true 或 false,Media Engine 会根据返回值做对应的动作。

返回
  • true:Media Engine 继续进行渲染
  • false:Media Engine 认为出错而停止渲染器的功能

◆ onStop()

void io.agora.rtc.mediaio.IVideoSink.onStop ( )

停止渲染器。

Media Engine 在停止渲染功能的时候会回调这个方法。开发者可以在这个方法中停止渲染。

◆ onDispose()

void io.agora.rtc.mediaio.IVideoSink.onDispose ( )

释放渲染器。

Media Engine 通知开发者渲染器即将被废弃。在 onDispose() 返回之后,开发者就可以释放掉资源了。

◆ getEGLContextHandle()

long io.agora.rtc.mediaio.IVideoSink.getEGLContextHandle ( )

获取 EGLContextHandle。

Media Engine 在需要创建 EGLContext 的时候,首先会从自定义的渲染器中查询,是都已经创建了 EGLContext。如果自定义渲染器中已经创建了并管理 EGL 环境,这个方法就会返回 EGLContext 的 Native Handle 并共享给 Media Engine。如果自定义渲染器中没有创建 EGLContext,会返回 0。

返回
EGLContext

◆ getBufferType()

int io.agora.rtc.mediaio.IVideoSink.getBufferType ( )

获取 Buffer 类型。

开发者在返回值中指定一种 Buffer 类型并告知 Media Engine。

返回
Video buffer type

◆ getPixelFormat()

int io.agora.rtc.mediaio.IVideoSink.getPixelFormat ( )

获取像素格式。

用于自定义渲染器的时候,还需要指定视频数据的像素格式。当自定义渲染器希望得到 ByteArray 或者 ByteBuffer 类型的视频数据时,可以选择 YUV(YUV420P)或 RGBA 格式;当自定义渲染器希望直接得到 Texture 时,也可以选择 Texture。

返回
Pixel format