React Native:Zoom Android SDK:“ startMeetingWithParams”以参与者身份开始会议-需要它以主持人身份开始会议

时间:2020-09-04 01:04:48

标签: android react-native zoomsdk zoomus

“ startMeetingWithParams”以参与者身份开始会议-需要它以主持人身份开始会议: 我正在尝试使用react-native-zoom-us开源项目创建一个简单的应用程序,该项目被称为充当“ zoom android sdk”的最小桥梁。通过导入“ us.zoom.sdk.ZoomSDK”在此网桥中访问zoom android sdk。它提供的基本功能包括android sdk的MeetingService的startMeetingWithParams()函数。在下面的代码中,我可以看到他们正在使用某些参数设置StartMeetingParamsWithoutLogin(),然后将其作为参数传递给startMeetingWithParams()。这将以用户作为参与者开始会议(即使在参数“ userId”中设置了会议的host_id时),并且会显示默认的等候室屏幕,等待主持人开始会议,而预计将开始会议。会议作为主持人。请对此提供您的推断,并让我知道需要采取什么措施来解决此问题。使用StartMeetingOptions是否需要做些什么?另外,这里的userType参数是什么?对于专业用户而言,它被称为“整数:2”。但是,我不确定我是哪种类型的缩放用户。请让我知道如何知道userType。

@ReactMethod
  public void startMeeting(
    final String displayName,
    final String meetingNo,
    final String userId,
    final int userType,
    final String zoomAccessToken,
    final String zoomToken,
    Promise promise
  ) {
    try {
      meetingPromise = promise;

      ZoomSDK zoomSDK = ZoomSDK.getInstance();
      if(!zoomSDK.isInitialized()) {
        promise.reject("ERR_ZOOM_START", "ZoomSDK has not been initialized successfully");
        return;
      }

      final MeetingService meetingService = zoomSDK.getMeetingService();
      if(meetingService.getMeetingStatus() != MeetingStatus.MEETING_STATUS_IDLE) {
        long lMeetingNo = 0;
        try {
          lMeetingNo = Long.parseLong(meetingNo);
        } catch (NumberFormatException e) {
          promise.reject("ERR_ZOOM_START", "Invalid meeting number: " + meetingNo);
          return;
        }

        if(meetingService.getCurrentRtcMeetingNumber() == lMeetingNo) {
          meetingService.returnToMeeting(reactContext.getCurrentActivity());
          promise.resolve("Already joined zoom meeting");
          return;
        }
      }

      StartMeetingOptions opts = new StartMeetingOptions();
      StartMeetingParamsWithoutLogin params = new StartMeetingParamsWithoutLogin();
      params.displayName = displayName;
      params.meetingNo = meetingNo;
      params.userId = userId;
      params.userType = userType;
      params.zoomAccessToken = zoomAccessToken;
      // params.zoomToken = zoomToken;

      int startMeetingResult = meetingService.startMeetingWithParams(reactContext.getCurrentActivity(), params, opts);
      Log.i(TAG, "startMeeting, startMeetingResult=" + startMeetingResult);

      if (startMeetingResult != MeetingError.MEETING_ERROR_SUCCESS) {
        promise.reject("ERR_ZOOM_START", "startMeeting, errorCode=" + startMeetingResult);
      }
    } catch (Exception ex) {
      promise.reject("ERR_UNEXPECTED_EXCEPTION", ex);
    }
  }

2 个答案:

答案 0 :(得分:0)

要使用api,您需要将订阅升级为付费用户。要检查您是否可以主持40分钟以上的会议。

答案 1 :(得分:0)

根据此处的 ZOOM Android SDK 参考https://marketplace.zoom.us/docs/sdk/sdk-reference/android-reference

查看 SDK 源代码后,这些是 userTypes 的值:

int USER_TYPE_API_USER = 0;
int USER_TYPE_ZOOM = 1;
int USER_TYPE_FACEBOOK = 2;
int USER_TYPE_GOOGLE_OAUTH = 3;
int USER_TYPE_SSO = 4;
int USER_TYPE_UNKNOWN = -1;

如您所见,它引用了用户登录的方式。 我决定使用 USER_TYPE_API_USER,因为我需要下载 Zoom 访问令牌(通过使用 Zoom API)。

我还在此处创建了关于将 Zoom SDK 集成到 React Native 的教程: https://stefanmajiros.medium.com/how-to-integrate-zoom-sdk-into-react-native-47492d4e46a6