自定义视频

1、创建自定义视频流对象,传入的第二个参数VIDEO_TAG是自定义的标签,可任意填写。不允许包含下划线'_'

RongRTCAVOutputStream mOutputStream = new RongRTCAVOutputStream(cn.rongcloud.rtc.stream.MediaType.VIDEO, VIDEO_TAG);
//创建用于回显的视图
RongRTCVideoView videoView = RongRTCEngine.getInstance().createVideoView(context);
//把用于回显的视图绑定到视频流中
mOutputStream .setRongRTCVideoView(videoView);
//为自定义视频流设置视频源track
mOutputStream .setRongRTCVideoTrack(RongRTCLocalSourceManager.getInstance().getCustomVideoTrack(mOutputStream ));

2、把创建好的自定义视频流通过 RongRTCLocalUser 的publishAVStream方法,进行发布

localUser.publishAVStream(mOutputStream, new RongRTCResultUICallBack() {
                    @Override
                    public void onUiSuccess() {
                        //发布成功
                    }
                    @Override
                    public void onUiFailed(RTCErrorCode errorCode) {
                        //发布失败
                    }
                });

3、发送视频数据的接口,我们提供了两种方式:YUV数据或纹理数据,使用者根据拿到的视频数据格式自行选择:

方式一(YUV数据):

mOutputStream.writeByteBuffer(bytes, width, height, rotation);

方式二(纹理数据):

mOutputStream.writeTextureFrame(width, height,oesTextureId,transformMatrix,rotation,timestampNs);