Search in sources :

Example 1 with CommonCallbacks

use of com.herewhite.sdk.CommonCallbacks in project whiteboard-android by netless-io.

the class PptResourceCacheActivity method joinRoom.

private void joinRoom(String uuid, String token) {
    logRoomInfo("room uuid: " + uuid + "\nroom token: " + token);
    // 存档一下,方便重连
    this.uuid = uuid;
    this.token = token;
    WhiteSdkConfiguration configuration = new WhiteSdkConfiguration(demoAPI.getAppId(), true);
    /*显示用户头像*/
    configuration.setUserCursor(true);
    // 动态 ppt 需要的自定义字体,如果没有使用,无需调用
    configuration.setFonts(new MapBuilder<String, String>().put("宋体", "https://your-cdn.com/Songti.ttf").build());
    mWhiteSdk = new WhiteSdk(mWhiteboardView, this, configuration);
    // 图片替换 API,需要在 whiteSDKConfig 中先行调用 setHasUrlInterrupterAPI,进行设置,否则不会被回调。
    mWhiteSdk.setCommonCallbacks(new CommonCallbacks() {

        @Override
        public String urlInterrupter(String sourceUrl) {
            return sourceUrl;
        }

        @Override
        public void onMessage(JSONObject message) {
            Log.d(TAG, message.toString());
        }

        @Override
        public void sdkSetupFail(SDKError error) {
            Log.e(TAG, "sdkSetupFail " + error.toString());
        }

        @Override
        public void throwError(Object args) {
            Log.e(TAG, "throwError " + args);
        }

        @Override
        public void onPPTMediaPlay() {
            logAction();
        }

        @Override
        public void onPPTMediaPause() {
            logAction();
        }
    });
    FontFace fontFace = new FontFace("example", "url(https://white-pan.oss-cn-shanghai.aliyuncs.com/Pacifico-Regular.ttf)");
    // mWhiteSdk.setupFontFaces(new FontFace[]{fontFace});
    mWhiteSdk.loadFontFaces(new FontFace[] { fontFace }, new Promise<JSONObject>() {

        @Override
        public void then(JSONObject object) {
            logRoomInfo("loadFontFaces");
        }

        @Override
        public void catchEx(SDKError t) {
        }
    });
    /**
     * 设置自定义全局状态,在后续回调中 GlobalState 直接进行类型转换即可
     */
    WhiteDisplayerState.setCustomGlobalStateClass(MyGlobalState.class);
    // 如需支持用户头像,请在设置 WhiteSdkConfiguration 后,再调用 setUserPayload 方法,传入符合用户信息
    RoomParams roomParams = new RoomParams(uuid, token, DemoAPI.DEFAULT_UID);
    final Date joinDate = new Date();
    logRoomInfo("native join " + joinDate);
    mWhiteSdk.joinRoom(roomParams, new RoomCallbacks() {

        @Override
        public void onCanUndoStepsUpdate(long canUndoSteps) {
            mRoomCallbackHock.onCanUndoStepsUpdate(canUndoSteps);
            logRoomInfo("canUndoSteps: " + canUndoSteps);
        }

        @Override
        public void onCanRedoStepsUpdate(long canRedoSteps) {
            mRoomCallbackHock.onCanRedoStepsUpdate(canRedoSteps);
            logRoomInfo("onCanRedoStepsUpdate: " + canRedoSteps);
        }

        @Override
        public void onCatchErrorWhenAppendFrame(long userId, Exception error) {
            mRoomCallbackHock.onCatchErrorWhenAppendFrame(userId, error);
            logRoomInfo("onCatchErrorWhenAppendFrame: " + userId + " error " + error.getMessage());
        }

        @Override
        public void onPhaseChanged(RoomPhase phase) {
            mRoomCallbackHock.onPhaseChanged(phase);
            // 在此处可以处理断连后的重连逻辑
            logRoomInfo("onPhaseChanged: " + phase.name());
            showToast(phase.name());
        }

        @Override
        public void onDisconnectWithError(Exception e) {
            mRoomCallbackHock.onDisconnectWithError(e);
            logRoomInfo("onDisconnectWithError: " + e.getMessage());
        }

        @Override
        public void onKickedWithReason(String reason) {
            mRoomCallbackHock.onKickedWithReason(reason);
            logRoomInfo("onKickedWithReason: " + reason);
        }

        @Override
        public void onRoomStateChanged(RoomState modifyState) {
            mRoomCallbackHock.onRoomStateChanged(modifyState);
            logRoomInfo("onRoomStateChanged:" + gson.toJson(modifyState));
            pptResourceManager.updateRoomState(modifyState);
        }
    }, new Promise<Room>() {

        @Override
        public void then(Room room) {
            // 记录加入房间消耗的时长
            logRoomInfo("native join in room duration: " + (System.currentTimeMillis() - joinDate.getTime()) / 1000f + "s");
            mRoom = room;
            addCustomEventListener();
            pptResourceManager.updateRoomState(mRoom.getRoomState());
            testMarkIdling(true);
        }

        @Override
        public void catchEx(SDKError t) {
            logRoomInfo("native join fail: " + t.getMessage());
            showToast(t.getMessage());
        }
    });
}
Also used : WhiteSdkConfiguration(com.herewhite.sdk.WhiteSdkConfiguration) SDKError(com.herewhite.sdk.domain.SDKError) RoomParams(com.herewhite.sdk.RoomParams) Date(java.util.Date) ConvertException(com.herewhite.sdk.domain.ConvertException) FontFace(com.herewhite.sdk.domain.FontFace) JSONObject(org.json.JSONObject) AbstractRoomCallbacks(com.herewhite.sdk.AbstractRoomCallbacks) RoomCallbacks(com.herewhite.sdk.RoomCallbacks) CommonCallbacks(com.herewhite.sdk.CommonCallbacks) JSONObject(org.json.JSONObject) RoomPhase(com.herewhite.sdk.domain.RoomPhase) WhiteSdk(com.herewhite.sdk.WhiteSdk) Room(com.herewhite.sdk.Room) RoomState(com.herewhite.sdk.domain.RoomState)

Example 2 with CommonCallbacks

use of com.herewhite.sdk.CommonCallbacks in project whiteboard-android by netless-io.

the class RatioChangeActivity method joinRoom.

private void joinRoom(String uuid, String token) {
    logRoomInfo("room uuid: " + uuid + "\nroom token: " + token);
    WhiteSdkConfiguration configuration = new WhiteSdkConfiguration(demoAPI.getAppId(), true);
    /*显示用户头像*/
    configuration.setUserCursor(true);
    // 动态 ppt 需要的自定义字体,如果没有使用,无需调用
    configuration.setFonts(new MapBuilder<String, String>().put("宋体", "https://your-cdn.com/Songti.ttf").build());
    mWhiteSdk = new WhiteSdk(mWhiteboardView, this, configuration);
    // 图片替换 API,需要在 whiteSDKConfig 中先行调用 setHasUrlInterrupterAPI,进行设置,否则不会被回调。
    mWhiteSdk.setCommonCallbacks(new CommonCallbacks() {

        @Override
        public String urlInterrupter(String sourceUrl) {
            return sourceUrl;
        }

        @Override
        public void onMessage(JSONObject message) {
            Log.d(TAG, message.toString());
        }

        @Override
        public void sdkSetupFail(SDKError error) {
            Log.e(TAG, "sdkSetupFail " + error.toString());
        }

        @Override
        public void throwError(Object args) {
            Log.e(TAG, "throwError " + args);
        }

        @Override
        public void onPPTMediaPlay() {
            logAction();
        }

        @Override
        public void onPPTMediaPause() {
            logAction();
        }
    });
    FontFace fontFace = new FontFace("example", "url(https://white-pan.oss-cn-shanghai.aliyuncs.com/Pacifico-Regular.ttf)");
    // mWhiteSdk.setupFontFaces(new FontFace[]{fontFace});
    mWhiteSdk.loadFontFaces(new FontFace[] { fontFace }, new Promise<JSONObject>() {

        @Override
        public void then(JSONObject object) {
            logRoomInfo("loadFontFaces");
        }

        @Override
        public void catchEx(SDKError t) {
        }
    });
    /**
     * 设置自定义全局状态,在后续回调中 GlobalState 直接进行类型转换即可
     */
    WhiteDisplayerState.setCustomGlobalStateClass(MyGlobalState.class);
    // 如需支持用户头像,请在设置 WhiteSdkConfiguration 后,再调用 setUserPayload 方法,传入符合用户信息
    RoomParams roomParams = new RoomParams(uuid, token, DemoAPI.DEFAULT_UID);
    final Date joinDate = new Date();
    logRoomInfo("native join " + joinDate);
    mWhiteSdk.joinRoom(roomParams, new AbstractRoomCallbacks() {
    }, new Promise<Room>() {

        @Override
        public void then(Room room) {
            // 记录加入房间消耗的时长
            logRoomInfo("native join in room duration: " + (System.currentTimeMillis() - joinDate.getTime()) / 1000f + "s");
            mRoom = room;
        }

        @Override
        public void catchEx(SDKError t) {
            logRoomInfo("native join fail: " + t.getMessage());
            showToast(t.getMessage());
        }
    });
}
Also used : WhiteSdkConfiguration(com.herewhite.sdk.WhiteSdkConfiguration) SDKError(com.herewhite.sdk.domain.SDKError) AbstractRoomCallbacks(com.herewhite.sdk.AbstractRoomCallbacks) RoomParams(com.herewhite.sdk.RoomParams) Date(java.util.Date) FontFace(com.herewhite.sdk.domain.FontFace) JSONObject(org.json.JSONObject) CommonCallbacks(com.herewhite.sdk.CommonCallbacks) JSONObject(org.json.JSONObject) WhiteSdk(com.herewhite.sdk.WhiteSdk) Room(com.herewhite.sdk.Room)

Aggregations

AbstractRoomCallbacks (com.herewhite.sdk.AbstractRoomCallbacks)2 CommonCallbacks (com.herewhite.sdk.CommonCallbacks)2 Room (com.herewhite.sdk.Room)2 RoomParams (com.herewhite.sdk.RoomParams)2 WhiteSdk (com.herewhite.sdk.WhiteSdk)2 WhiteSdkConfiguration (com.herewhite.sdk.WhiteSdkConfiguration)2 FontFace (com.herewhite.sdk.domain.FontFace)2 SDKError (com.herewhite.sdk.domain.SDKError)2 Date (java.util.Date)2 JSONObject (org.json.JSONObject)2 RoomCallbacks (com.herewhite.sdk.RoomCallbacks)1 ConvertException (com.herewhite.sdk.domain.ConvertException)1 RoomPhase (com.herewhite.sdk.domain.RoomPhase)1 RoomState (com.herewhite.sdk.domain.RoomState)1