流处理
本地视频流处理
注册本地视频采集监听 RCRTCVideoOutputStream.setVideoFrameListener,获取本地摄像头采集的视频流数据。
Java
RCRTCEngine.getInstance().getDefaultVideoStream().setVideoFrameListener(new IRCRTCVideoOutputFrameListener() {
@Override
public RCRTCVideoFrame processVideoFrame(RCRTCVideoFrame rtcVideoFrame) {
// 使用视频数据进行美颜/录像等处理后,需要将数据返回给 SDK 以继续发送
return rtcVideoFrame;
}
});
参数说明
参数 | 类型 | 说明 |
---|---|---|
videoFrameListener | IRCRTCVideoOutputFrameListener | 本地视频流回调 |
回调参数(processVideoFrame)
回调参数 | 回调类型 | 说明 |
---|---|---|
rtcVideoFrame | RCRTCVideoFrame | 可通 过 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) {
// 远端视频数据
}
});
参数说明
参数 | 类型 | 说明 |
---|---|---|
videoFrameListener | IRCRTCVideoInputFrameListener | 远端视频流回调 |
回调参数(onFrame)
回调参数 | 回调类型 | 说明 |
---|---|---|
videoFrame | RCRTCRemoteVideoFrame | 远端视频流数据。请避免在回调内执行耗时操作,以免造成渲染卡顿 |
远端视频流静默
媒体流对象均可调用 mute(boolean mute)
设置是否静默。对于远端视频流,当 mute = true
时将不再渲染远端视频,但不影响远端视频数据接收。
Java
for (RCRTCInputStream inputStream : inputStreams) {
if (inputStream.getMediaType() == RCRTCMediaType.VIDEO) {
RCRTCVideoInputStream videoInputStream = (RCRTCVideoInputStream) inputStream;
videoInputStream.mute(true);
}
}