流处理
本地视频流处理
注册本地视频采集监听 RCRTCVideoOutputStream.setVideoFrameListener ,获取本地摄像头采集的视频流数据。
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 则不再发送本地资源,也不能渲染,但不影响视频数据采集。
RCRTCEngine.getInstance().getDefaultVideoStream().mute(mute);
远端视频流处理
注册监听 RCRTCVideoInputStream.setVideoFrameListener 获取远端视频流数据。
RCRTCVideoInputStream.setVideoFrameListener(new IRCRTCVideoInputFrameListener() {
@Override
public void onFrame(RCRTCRemoteVideoFrame videoFrame) {
// 远端视频数据
}
});
参数 | 类型 | 说明 |
---|---|---|
videoFrameListener | IRCRTCVideoInputFrameListener | 远端视频流回调 |
回调参数 onFrame
说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
videoFrame | RCRTCRemoteVideoFrame | 远端视频流数据,需要注意:不可以在当前回调中执行长时间耗时操作,否则会造成渲染卡顿 |
远端视频流静默
媒体流对象都可以调用 mute(boolean mute)
方法设置是否静默。对于远端视频流,如果 mute
为 true 则不再渲染远端流,但不影响远端视频数据接收。
for (RCRTCInputStream inputStream : inputStreams) {
if (inputStream.getMediaType() == RCRTCMediaType.VIDEO){
RCRTCVideoInputStream videoInputStream = (RCRTCVideoInputStream) inputStream;
videoInputStream.mute(true);
}
}