Skip to content

demo_api_v2

Su, Jia edited this page Jan 3, 2018 · 6 revisions

1. kit类说明

在demo中,我们将魔方连麦SDK和金山推流SDK集成到一起,共同完成推流 + 连麦的功能。

实现思路为:
以金山推流SDK为主体,将连麦功能封装为推流的一个模块RTCClient, 然后通过RTCStreamer这个kit类组装各个模块。
因此,demo功能包含推流SDK的全部功能 + 连麦功能。
并且,demo内连麦功能和推流功能互不影响, 可独立的控制。

两人连麦对应的kit类: KMCAgoraVRTCClientKMCAgoraStreamer
多人连麦对应的kit类: KMCMultiUserRTCClientKMCMultiUserRTCStreamer

注:事实上,对于两人连麦的场景,多人连麦kit类基本覆盖两人连麦kit类的功能。
不同之处是,当前版本(v2.0.0)多人连麦kit类只支持竖屏连麦,而两人连麦kit类横竖屏都支持。

2. kit类接口

推流

  1. 开始推流
public void startStream()
  1. 停止推流
public void stopStream()

连麦

  1. 开始连麦
public void startRTC(String channel)
  1. 停止连麦
public void stopRTC()

背景图设置

//设置背景图的显示区域
public void setBgPictureRect(float x, float y, float w, float h,
                                 float alpha, int mode)

//显示背景图
public void showBgPicture(Bitmap bitmap)

//隐藏背景图
public void hideBgPicture()

两人连麦窗口设置

两人视频连麦时,demo默认为大小窗口的形式展示画面。
其中,大窗口为GLSurfaceView的大小。

  1. 小窗口的位置和大小可以通过以下方法设置
   /**
   * the sub screen position
   * must be set before registerRTC
   *
   * @param width  width for frame from this pin to show, should be 0~1, default value 0.35f
   * @param height height for frame from this pin to show, should be 0~1, default value 0.3f
   * @param left   left position for left top of frame from this pin, should be 0~1, default value 0.65f
   * @param top    top position for left top of frame from this pin, should be 0~1, defualt value 0.f
   * @param mode   scaling mode
   */
  public void setRTCSubScreenRect(float left, float top, float width, float height, int mode)
  1. camera窗口的尺寸和位置可以通过以下方法设置
  /**
   * set camera screen rect when rtc connected
   * @param left left position for left top of frame from this pin, should be 0~1, default value 0.f
   * @param top top position for left top of frame from this pin, should be 0~1, default value 0.f
   * @param width width for frame from this pin to show, should be 0~1, default value 1.f
   * @param height height for frame from this pin to show, should be 0~1, default value 1.f
   * @param mode scaling mode
   */
  public void setRTCMainScreenRect(float left, float top, float width, float height, int mode)
  1. 通过以下方法可以设置大窗口显示的图像内容
  //大窗口为camera图像
  public static final int RTC_MAIN_SCREEN_CAMERA = 1;
  //大窗口为连麦图像
  public static final int RTC_MAIN_SCREEN_REMOTE = 2;

    /**
   * set rtc main Screen
   *
   * @param mainScreenType
   */
  public void setRTCMainScreen(int mainScreenType)
  1. 切换窗口
   public void switchMainScreen()