0

我正在尝试捕捉onMeetingStatusChanged事件。但就我而言,onMeetingStatusChanged有时会调用,而不是一直调用。下面是我实现的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    registerListener();
    InitAuthSDKHelper.getInstance().initSDK(this, new InitAuthSDKCallback() {
        @Override
        public void onZoomSDKInitializeResult(int i, int i1) {

        }

        @Override
        public void onZoomAuthIdentityExpired() {

        }
    });
}

private void registerListener() {
    ZoomSDK zoomSDK = ZoomSDK.getInstance();
    MeetingService meetingService = zoomSDK.getMeetingService();
    if (meetingService != null) {
        meetingService.addListener(this);
    }
}

@Override
public void onMeetingStatusChanged(MeetingStatus meetingStatus,
                                   int errorCode,
                                   int internalErrorCode) {
    LogD.d(TAG, String.valueOf(meetingStatus));
    if (meetingStatus == MeetingStatus.MEETING_STATUS_IDLE) {
        layout_zoom_loading.setVisibility(View.VISIBLE);
    } else {
        layout_zoom_loading.setVisibility(View.GONE);
    }
    if(meetingStatus == MeetingStatus.MEETING_STATUS_FAILED
            && errorCode == MeetingError.MEETING_ERROR_CLIENT_INCOMPATIBLE) {
        Toast.makeText(this, "Version of ZoomSDK is too low!", Toast.LENGTH_LONG).show();
    }
}


public void joinMeeting(String meetingNo, String meetingPassword) {
    ZoomSDK zoomSDK = ZoomSDK.getInstance();
    if (!zoomSDK.isInitialized()) {
        Toast.makeText(this, getString(R.string.msg_zoom_init_fail), Toast.LENGTH_LONG).show();
        return;
    }
    JoinMeetingHelper.getInstance().joinMeetingWithNumber(this, meetingNo, meetingPassword);
}
4

1 回答 1

0

我看到了这个问题的原因。我们需要将initSDK方法与BaseActivity类分开。因此,当用户转发到下一个运行 Zoom 会议的 Activity 时,onMeetingStatusChanged总是会被调用。

于 2020-07-13T10:34:54.267 回答