我们将在1天内将学生转移到udalenka

图片

早在3月16日,我们就坐在舒适的开放空间中,第二天整个办公室搬到了一个偏僻的家中。在一个足够的类似故事。但是,我们情况的细节不是员工的转移,而是客户的转移。这些是全日制学习的三千多名学生,但一方面以函授方式告终。

做了什么


教师培训部门已制定了在线讲座的准则。例如,例如:

上课时间
- 4 ., , (30-40 ), .

- 8 . ( ), ( , , , ).

, , .

集中注意力
, – , , . : , 15-20 , , .

(10-12 ). (30+ ), «» , , 2 . 2 . – .

第一线和第二线员工的工作量很大。突然,支持上出现了成千上万的个人用户设备,需要在该设备上帮助安装必要的软件,发布特定软件的许可证,并且突然之间,Zoom在克里米亚(谁设法离开了那里),集成了VPN帮助的Opera中无法使用。

Zoom被选为主要平台。

最初,随着班级的规划,会议的创建以及向所有学生和老师提供信息的问题出现了。

图片

这就是Zoom最初几天的讲座时间表。所有会议都是手动创建的

图片

因此,当它在1秒钟内再次开始进行时,

多亏了我的同事,他及时抽出了Zoom API,并按照时间表安排了自动创建会议。以及有关它的自动信息。

这是Sergey关于如何使用Zoom API创建会议的作品链接

反过来,我想分享Android应用程序中平台集成的经验。
在我们的用户情况下,这非常方便,因为会议在服务器上创建,其标识符被传输到电话上的日程表。

图片

集成了Zoom

Now的Schedule界面让我们看看它是如何工作的。
源代码

1.从SDK导入两个库:commonlib和mobilertc。这可能是最悲伤的阶段,因为 您的应用程序将增加80兆字节。

2.我们在活动或片段中实现InitAuthSDKCallback,MeetingServiceListener。为了使缩放正常工作,必须有至少21的API(站点文档中指示了minSdkVersion 16,但更新速度不是很快,因此最好专注于SDK样本中的示例)。

创建片段时,初始化SDK

初始化Zoom SDK
private View view;
private ZoomSDK mZoomSDK;
@Override
public View onCreateView(
            LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment_first, container, false);

        mZoomSDK = ZoomSDK.getInstance();
        if (mZoomSDK.isLoggedIn()) {
            getActivity().onBackPressed();
            return null;
        }

        InitAuthSDKHelper.getInstance().initSDK(getContext(), this);
        if (mZoomSDK.isInitialized()) {

            ZoomSDK.getInstance().getMeetingService().addListener(this);
            ZoomSDK.getInstance().getMeetingSettingsHelper().enable720p(true);
        }

        return view;
}


为此,请创建InitAuthSDKHelper类并调用该函数:

初始化SDK
public void initSDK(Context context, InitAuthSDKCallback callback) {
        if (!mZoomSDK.isInitialized()) {
            mInitAuthSDKCallback = callback;

            ZoomSDKInitParams initParams = new ZoomSDKInitParams();
//            initParams.jwtToken = SDK_JWTTOKEN;
            initParams.appKey = SDK_KEY;
            initParams.appSecret = SDK_SECRET;
            initParams.enableLog = true;
            initParams.logSize = 50;
            initParams.domain = WEB_DOMAIN;
            initParams.videoRawDataMemoryMode = ZoomSDKRawDataMemoryMode.ZoomSDKRawDataMemoryModeStack;
            mZoomSDK.initialize(context, this, initParams);
        }
}


在这里,我们注意以下参数:

appKey和appSecret-这是您在缩放站点上创建的应用程序的标识符和秘密密钥(大约需要1分钟),并注册为开发人员。

在实践中,强烈建议不要使用它们进行识别。
相反,您应该使用jwtToken参数,如此处所述

会议连线
private AutoCompleteTextView idMeeting;
private AutoCompleteTextView idDisplayName;

private void onClickJoin() {
        if(!mZoomSDK.isInitialized())
        {
            Toast.makeText(getContext(),"ZoomSDK has not been initialized 
            successfully",Toast.LENGTH_SHORT).show();
            InitAuthSDKHelper.getInstance().initSDK(getContext(), this);
            return;
        }

if (ZoomSDK.getInstance().getMeetingSettingsHelper().isCustomizedMeetingUIEnabled()) {
   ZoomSDK.getInstance().getSmsService().enableZoomAuthRealNameMeetingUIShown(false);
} else {
   ZoomSDK.getInstance().getSmsService().enableZoomAuthRealNameMeetingUIShown(true);
}

        String number = idMeeting.getText().toString();
        String name = idDisplayName.getText().toString();

        JoinMeetingParams params = new JoinMeetingParams();
        params.meetingNo = number;
        params.displayName = name;
        ZoomSDK.getInstance().getMeetingService().joinMeetingWithParams(getContext(), params);
}


图片

此实现使用本机接口。但是支持定制的可能性。

发现


  1. 培训过程(需要研讨会和专用设备的情况除外)可以在线转移。
  2. 有针对性的系统方法对于消除每个导师将使用的大量交流工具很重要。
  3. 如果您之前在后端建立了培训过程,那么将会议引入移动应用程序将不会花费很多时间。

All Articles