Transferimos estudiantes a udalenka en 1 día

imagen

Ya el 16 de marzo, estábamos sentados en un espacio abierto y cómodo, y al día siguiente toda la oficina se mudó a un hogar remoto. En un habr bastantes historias similares. Pero lo específico de nuestra situación no es la transferencia de empleados, sino la transferencia de clientes. Estos son más de tres mil estudiantes que vinieron a estudiar a tiempo completo, pero por un lado terminaron en correspondencia.

Lo que fue hecho


El departamento de capacitación para maestros ha desarrollado pautas para conferencias en línea. Por ejemplo, como:

Duración de la clase
- 4 ., , (30-40 ), .

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

, , .

Enfocando la atención
, – , , . : , 15-20 , , .

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

El trabajo enorme recayó en los empleados de la primera y segunda línea de apoyo. De repente, miles de dispositivos de usuarios personales aparecieron en el soporte, en el que era necesario ayudar a instalar el software necesario, emitir licencias para un software específico y, de repente, Zoom no funciona en Crimea (que logró salir de allí), Opera con una ayuda de VPN integrada.

Zoom fue elegido como la plataforma principal.

Inicialmente, la pregunta surgió con la planificación de las clases, la creación de conferencias y la información a todos los estudiantes y profesores.

imagen

Así es como se veía el programa de conferencias de Zoom durante los primeros días. En el que todas las conferencias se crearon manualmente

imagen

Y así, cuando comenzó de nuevo en 1.

Gracias a mi colega que rápidamente fumó la API de Zoom y arruinó la creación automática de la conferencia de acuerdo con el cronograma. Y también autoinformación al respecto.

Y aquí hay un enlace a los trabajos de Sergey sobre cómo crear conferencias usando la API de Zoom.

Yo, a su vez, quiero compartir experiencias sobre integración de plataformas en la aplicación de Android.
En nuestro caso de usuario, esto resultó ser muy conveniente, porque Las conferencias se crean en el servidor y sus identificadores se transfieren a la programación en el teléfono.

imagen

Interfaz de programación integrada con Zoom

Ahora veamos cómo funciona.
Código fuente

1. Importe dos bibliotecas del SDK : commonlib y mobilertc. Esta es probablemente la etapa más triste, porque su aplicación se vuelve 80 megabytes más pesada.

2. Implementamos InitAuthSDKCallback, MeetingServiceListener en nuestra actividad o fragmento. Para que el zoom funcione, es necesaria una API mínima de 21 (minSdkVersion 16 se indica en la documentación del sitio, pero no se actualiza muy rápidamente, es mejor centrarse en ejemplos en muestras procedentes del SDK).

Al crear un fragmento, inicialice el SDK

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


Para hacer esto, cree la clase InitAuthSDKHelper y llame a la función:

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


Aquí prestamos atención a los siguientes parámetros:

appKey y appSecret : este es el identificador y la clave secreta de su aplicación que crea en el sitio de zoom (se tarda aproximadamente 1 minuto), registrada como desarrollador.

En la práctica, se desaconseja utilizarlos para su identificación.
En su lugar, debe usar el parámetro jwtToken , como está escrito aquí .

Conexión de conferencia
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);
}


imagen

Esta implementación usa la interfaz nativa. Pero la posibilidad de personalización es compatible.

recomendaciones


  1. El proceso de capacitación (con la excepción de aquellos casos en que se requieren talleres y equipos especiales) se puede transferir en línea.
  2. Un enfoque centrado y sistemático es importante para eliminar el zoológico de herramientas de comunicación que utilizará cada tutor.
  3. Si el proceso de capacitación en su backend se estableció previamente, entonces la introducción de conferencias en la aplicación móvil no tomará mucho tiempo.

All Articles