Nous transférons les étudiants à udalenka en 1 jour

image

Dès le 16 mars, nous étions assis dans un espace ouvert confortable, et le lendemain, tout le bureau a déménagé dans une maison isolée. Sur un assez assez d'histoires similaires. Mais la spécificité de notre situation n'est pas le transfert d'employés, mais le transfert de clients. Ce sont plus de trois mille étudiants qui sont venus étudier à temps plein, mais d'une part se sont retrouvés en correspondance.

Ce qui a été fait


Le département de formation des enseignants a élaboré des directives pour les cours en ligne. Par exemple, comme:

Durée du cours
- 4 ., , (30-40 ), .

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

, , .

Concentrer l'attention
, – , , . : , 15-20 , , .

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

Un énorme travail est tombé sur les employés des première et deuxième lignes de soutien. Soudain, des milliers de dispositifs utilisateurs personnels sont apparus sur le support, sur lesquels il était nécessaire d'aider à installer les logiciels nécessaires, d'émettre des licences pour des logiciels spécifiques et, tout d'un coup, Zoom ne fonctionne pas en Crimée (qui a réussi à partir là-bas), Opera avec une aide VPN intégrée.

Zoom a été choisi comme plate-forme principale.

Dans un premier temps, la question s'est posée avec la planification des cours, la création de conférences et l'information de tous les élèves et enseignants.

image

Voici à quoi ressemblait le programme des conférences Zoom pendant les premiers jours. Dans lequel toutes les conférences ont été créées manuellement

image

Et donc, quand ça a recommencé dans les 1.

Merci à mon collègue d'avoir fumé rapidement l'API Zoom et foiré la création automatique de la conférence selon le planning. Et aussi l'auto-information à ce sujet.

Et voici un lien vers les travaux de Sergey sur la création de conférences à l'aide de l'API Zoom.

À mon tour, je souhaite partager mon expérience sur l'intégration de la plate-forme dans l'application Android.
Dans notre cas d'utilisation, cela s'est avéré très pratique, car Les conférences sont créées sur le serveur et leurs identifiants sont transférés au planning sur le téléphone.

image

Interface de planification intégrée avec Zoom

Voyons maintenant comment cela fonctionne.
Code source

1. Importez deux bibliothèques du SDK : commonlib et mobilertc. C'est probablement l'étape la plus triste, car votre application devient plus lourde de 80 mégaoctets.

2. Nous implémentons InitAuthSDKCallback, MeetingServiceListener dans notre activité ou fragment. Pour que le zoom fonctionne, une API minimum de 21 est nécessaire (minSdkVersion 16 est indiqué dans la documentation du site, mais il n'est pas mis à jour très rapidement, il vaut mieux se concentrer sur des exemples dans des exemples provenant du SDK).

Lors de la création d'un fragment, initialisez le SDK

Initialiser 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;
}


Pour ce faire, créez la classe InitAuthSDKHelper et appelez la fonction:

initSDK
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);
        }
}


Ici, nous prêtons attention aux paramètres suivants:

appKey et appSecret - c'est l'identifiant et la clé secrète de votre application que vous créez sur le site de zoom (cela prend environ 1 minute), enregistré en tant que développeur.

En pratique, il est fortement déconseillé de les utiliser pour l'identification.
Au lieu de cela, vous devez utiliser le paramètre jwtToken , tel qu'il est écrit ici .

Connexion à la conférence
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);
}


image

Cette implémentation utilise l'interface native. Mais la possibilité de personnalisation est prise en charge.

résultats


  1. Le processus de formation (à l'exception des cas où des ateliers et des équipements spéciaux sont nécessaires) peut être transféré en ligne.
  2. Une approche ciblée et systématique est importante pour éliminer le zoo des outils de communication que chaque tuteur utilisera.
  3. Si le processus de formation au niveau de votre backend a déjà été établi, l'introduction de conférences dans l'application mobile ne prendra pas beaucoup de temps.

All Articles