跳到主要内容

流处理

本地视频流处理

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

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 则不再发送本地资源,也不能渲染,但不影响视频数据采集。

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

远端视频流处理

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

RCRTCVideoInputStream.setVideoFrameListener(new IRCRTCVideoInputFrameListener() {
@Override
public void onFrame(RCRTCRemoteVideoFrame videoFrame) {
// 远端视频数据
}
});
参数类型说明
videoFrameListenerIRCRTCVideoInputFrameListener远端视频流回调

回调参数 onFrame 说明:

回调参数回调类型说明
videoFrameRCRTCRemoteVideoFrame远端视频流数据,需要注意:不可以在当前回调中执行长时间耗时操作,否则会造成渲染卡顿

远端视频流静默

媒体流对象都可以调用 mute(boolean mute) 方法设置是否静默。对于远端视频流,如果 mute 为 true 则不再渲染远端流,但不影响远端视频数据接收。

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