跳到主要内容

流处理

本地视频流处理

注册本地视频采集监听 RCRTCVideoOutputStream.setVideoFrameListener,获取本地摄像头采集的视频流数据。

Java
RCRTCEngine.getInstance().getDefaultVideoStream().setVideoFrameListener(new IRCRTCVideoOutputFrameListener() {
@Override
public RCRTCVideoFrame processVideoFrame(RCRTCVideoFrame rtcVideoFrame) {
// 使用视频数据进行美颜/录像等处理后,需要将数据返回给 SDK 以继续发送
return rtcVideoFrame;
}
});

参数说明

参数类型说明
videoFrameListenerIRCRTCVideoOutputFrameListener本地视频流回调

回调参数(processVideoFrame)

回调参数回调类型说明
rtcVideoFrameRCRTCVideoFrame可通过 RCRTCVideoFrame.getTextureId()RCRTCVideoFrame.getData() 读取并处理视频数据;如进行了修改,请调用 RCRTCVideoFrame.setTextureId(int textureId)RCRTCVideoFrame.setData(byte[] data) 设置回对象并返回

本地视频流静默

媒体流对象均可调用 mute(boolean mute) 设置是否静默。对于本地视频流,当 mute = true 时将不再发送本地视频,也不能渲染,但不影响视频数据采集。

Java
RCRTCEngine.getInstance().getDefaultVideoStream().mute(mute);

远端视频流处理

注册监听 RCRTCVideoInputStream.setVideoFrameListener 获取远端视频流数据。

Java
// 设置远端视频帧回调
RCRTCVideoInputStream.setVideoFrameListener(new IRCRTCVideoInputFrameListener() {
@Override
public void onFrame(RCRTCRemoteVideoFrame videoFrame) {
// 远端视频数据
}
});

参数说明

参数类型说明
videoFrameListenerIRCRTCVideoInputFrameListener远端视频流回调

回调参数(onFrame)

回调参数回调类型说明
videoFrameRCRTCRemoteVideoFrame远端视频流数据。请避免在回调内执行耗时操作,以免造成渲染卡顿

远端视频流静默

媒体流对象均可调用 mute(boolean mute) 设置是否静默。对于远端视频流,当 mute = true 时将不再渲染远端视频,但不影响远端视频数据接收。

Java
for (RCRTCInputStream inputStream : inputStreams) {
if (inputStream.getMediaType() == RCRTCMediaType.VIDEO) {
RCRTCVideoInputStream videoInputStream = (RCRTCVideoInputStream) inputStream;
videoInputStream.mute(true);
}
}