Skip to content

View_Streaming

buliaoyin edited this page Jul 13, 2017 · 3 revisions

View合成推流(画笔推流)

SDK从v4.2.4版本开始支持将普通的Android View内容叠加到视频画面上进行直播推流。

注意:该功能不支持软编兼容模式。

1. 应用场景

该功能的一个典型应用场景就是主播在直播过程中,在屏幕上面手绘一些内容叠加到直播画面中去。
当然,你也可以叠加其他类型的View,用在不同的场景下面。

2. 使用方法

  1. 创建所需叠加的View放在预览View之上.

    Demo中使用了一个第三方封装好的 PaintView 来实现手绘功能。

  2. 创建ViewCapture,并进行初始化.

    // 创建ViewCapture
    mPaintViewCapture = new ViewCapture(mStreamer.getGLRender());
    // 将创建好的ViewCapture输出连接到图像mixer上,此处使用空闲的7号SinkPin(0-2分别被camera和水印占据)
    mPaintViewCapture.getSrcPin().connect(mStreamer.getImgTexMixer().getSinkPin(7));
    // 设置PaintView在视频上的位置及大小,此处我们是全屏模式
    mStreamer.getImgTexMixer().setRenderRect(7, 0, 0, 1, 1, 1);
    // 设置从PaintView中取出的画面大小,一般不要超过视频大小,以节省资源
    mPaintViewCapture.setTargetResolution(mStreamer.getTargetWidth(), mStreamer.getTargetHeight());
    // 设置刷新频率,一般配置为推流的fps
    mPaintViewCapture.setUpdateFps(mStreamer.getTargetFps());
  3. 开始叠加

    // 参数为所需要叠加的View实例
    mPaintViewCapture.start(mPaintView);
  4. 停止叠加

    // 停止针对此View的采集、叠加
    mPaintViewCapture.stop();
    // 清空PaintView
    mPaintView.clear();
    mPaintView.setVisibility(View.GONE);

3. 画笔推流效果图

画笔推流

Clone this wiki locally