Search in sources :

Example 6 with Room

use of com.herewhite.sdk.Room 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 7 with Room

use of com.herewhite.sdk.Room 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)

Example 8 with Room

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

the class ScenesActivity method joinRoom.

// region room
private void joinRoom(String uuid, String token) {
    logRoomInfo("room uuid: " + uuid + "\nroom token: " + token);
    WhiteSdkConfiguration configuration = new WhiteSdkConfiguration(demoAPI.getAppId(), true);
    mWhiteSdk = new WhiteSdk(mWhiteboardView, this, configuration);
    RoomParams roomParams = new RoomParams(uuid, token, DemoAPI.DEFAULT_UID);
    roomParams.setDisableNewPencil(false);
    roomParams.setWritable(true);
    mWhiteSdk.joinRoom(roomParams, new RoomCallbacks() {

        @Override
        public void onCanUndoStepsUpdate(long canUndoSteps) {
        }

        @Override
        public void onCanRedoStepsUpdate(long canRedoSteps) {
        }

        @Override
        public void onCatchErrorWhenAppendFrame(long userId, Exception error) {
        }

        @Override
        public void onPhaseChanged(RoomPhase phase) {
            logRoomInfo("onPhaseChanged: " + phase.name());
            showToast(phase.name());
        }

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

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

        @Override
        public void onRoomStateChanged(RoomState modifyState) {
            logRoomInfo("onRoomStateChanged: " + modifyState);
            if (modifyState.getSceneState() != null) {
                // callback when sceneState changed
                SceneState sceneState = modifyState.getSceneState();
                logRoomInfo("sceneState changed " + sceneState.toString());
            }
        }
    }, new Promise<Room>() {

        @Override
        public void then(Room room) {
            mRoom = room;
        }

        @Override
        public void catchEx(SDKError t) {
            showToast(t.getMessage());
        }
    });
}
Also used : WhiteSdkConfiguration(com.herewhite.sdk.WhiteSdkConfiguration) SDKError(com.herewhite.sdk.domain.SDKError) SceneState(com.herewhite.sdk.domain.SceneState) RoomParams(com.herewhite.sdk.RoomParams) RoomCallbacks(com.herewhite.sdk.RoomCallbacks) RoomPhase(com.herewhite.sdk.domain.RoomPhase) WhiteSdk(com.herewhite.sdk.WhiteSdk) Room(com.herewhite.sdk.Room) RoomState(com.herewhite.sdk.domain.RoomState)

Example 9 with Room

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

the class CameraMoveActivity method joinRoom.

private void joinRoom() {
    WhiteSdkConfiguration configuration = new WhiteSdkConfiguration(demoAPI.getAppId(), true);
    whiteSdk = new WhiteSdk(whiteboardView, this, configuration);
    RoomParams roomParams = new RoomParams(demoAPI.getRoomUUID(), demoAPI.getRoomToken(), DemoAPI.DEFAULT_UID);
    whiteSdk.joinRoom(roomParams, new EmptyRoomListener(), new Promise<Room>() {

        @Override
        public void then(Room room) {
            CameraMoveActivity.this.room = room;
            loadImageInfo("https://placekitten.com/1920/1080");
        }

        @Override
        public void catchEx(SDKError t) {
            showToast(t.getMessage());
        }
    });
}
Also used : WhiteSdkConfiguration(com.herewhite.sdk.WhiteSdkConfiguration) SDKError(com.herewhite.sdk.domain.SDKError) RoomParams(com.herewhite.sdk.RoomParams) WhiteSdk(com.herewhite.sdk.WhiteSdk) Room(com.herewhite.sdk.Room) EmptyRoomListener(com.herewhite.demo.utils.EmptyRoomListener)

Example 10 with Room

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

the class CameraMoveImageActivity method joinRoom.

private void joinRoom() {
    WhiteSdkConfiguration configuration = new WhiteSdkConfiguration(demoAPI.getAppId(), true);
    whiteSdk = new WhiteSdk(whiteboardView, this, configuration);
    RoomParams roomParams = new RoomParams(demoAPI.getRoomUUID(), demoAPI.getRoomToken(), DemoAPI.DEFAULT_UID);
    whiteSdk.joinRoom(roomParams, new EmptyRoomListener(), new Promise<Room>() {

        @Override
        public void then(Room room) {
            CameraMoveImageActivity.this.room = room;
            loadImageInfo(TEST_IMAGE_URL);
        }

        @Override
        public void catchEx(SDKError t) {
            showToast(t.getMessage());
        }
    });
}
Also used : WhiteSdkConfiguration(com.herewhite.sdk.WhiteSdkConfiguration) SDKError(com.herewhite.sdk.domain.SDKError) RoomParams(com.herewhite.sdk.RoomParams) WhiteSdk(com.herewhite.sdk.WhiteSdk) Room(com.herewhite.sdk.Room) EmptyRoomListener(com.herewhite.demo.utils.EmptyRoomListener)

Aggregations

Room (com.herewhite.sdk.Room)10 RoomParams (com.herewhite.sdk.RoomParams)10 WhiteSdk (com.herewhite.sdk.WhiteSdk)10 WhiteSdkConfiguration (com.herewhite.sdk.WhiteSdkConfiguration)10 SDKError (com.herewhite.sdk.domain.SDKError)10 RoomPhase (com.herewhite.sdk.domain.RoomPhase)7 RoomState (com.herewhite.sdk.domain.RoomState)7 JSONObject (org.json.JSONObject)7 AbstractRoomCallbacks (com.herewhite.sdk.AbstractRoomCallbacks)5 CommonCallback (com.herewhite.sdk.CommonCallback)5 RoomCallbacks (com.herewhite.sdk.RoomCallbacks)4 Date (java.util.Date)4 ConvertException (com.herewhite.sdk.domain.ConvertException)3 FontFace (com.herewhite.sdk.domain.FontFace)3 WindowParams (com.herewhite.sdk.domain.WindowParams)3 HashMap (java.util.HashMap)3 EmptyRoomListener (com.herewhite.demo.utils.EmptyRoomListener)2 CommonCallbacks (com.herewhite.sdk.CommonCallbacks)2 RoomListener (com.herewhite.sdk.RoomListener)2 SceneState (com.herewhite.sdk.domain.SceneState)1