-
Notifications
You must be signed in to change notification settings - Fork 1
demo_api_v2
Su, Jia edited this page Jan 3, 2018
·
6 revisions
在demo中,我们将魔方连麦SDK和金山推流SDK集成到一起,共同完成推流 + 连麦的功能。
实现思路为:
以金山推流SDK为主体,将连麦功能封装为推流的一个模块RTCClient, 然后通过RTCStreamer这个kit类组装各个模块。
因此,demo功能包含推流SDK的全部功能 + 连麦功能。
并且,demo内连麦功能和推流功能互不影响, 可独立的控制。
两人连麦对应的kit类:
KMCAgoraVRTCClient和KMCAgoraStreamer
多人连麦对应的kit类:
KMCMultiUserRTCClient和KMCMultiUserRTCStreamer。
注:事实上,对于两人连麦的场景,多人连麦kit类基本覆盖两人连麦kit类的功能。
不同之处是,当前版本(v2.0.0)多人连麦kit类只支持竖屏连麦,而两人连麦kit类横竖屏都支持。
- 开始推流
public void startStream()
- 停止推流
public void stopStream()
- 开始连麦
public void startRTC(String channel)
- 停止连麦
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的大小。
- 小窗口的位置和大小可以通过以下方法设置
/**
* 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)
- 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)
- 通过以下方法可以设置大窗口显示的图像内容
//大窗口为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)
- 切换窗口
public void switchMainScreen()